我使用以下工具创建了实时聊天应用程序:Laravel 5.8,Laravel Echo,Redis,Socket.io和Vue.js。
它在我的本地计算机(本地主机)上正常工作。但是,当我尝试将应用程序移至生产服务器(具有https)时,它停止工作,并向我显示laravel-echo-server.log文件中的下一个错误:
我还更改了 laravel-echo-server.json (回声服务器配置文件),如下所示:
还可以看到 window.Echo配置的外观(在app.js中):
import Echo from 'laravel-echo'
window.io = require('socket.io-client');
window.Echo = new Echo({
broadcaster: 'socket.io',
host: window.location.hostname + ':6001'
});
在上面提到的配置中我可能有一些错误吗?
此外,我认为这对您有所帮助,请查看以下我在客户请求之一中注意到的屏幕截图:
我试图找到有关该错误以及为什么会出现但没有结果的更多信息。确实我检查了laravel日志文件-它是空的,nginx error.log文件也为空,这是我看到错误的唯一地方是laravel-echo-server.log文件(我在上面推了其内容)
有关其他信息,您可以检查我的.env文件(我更改了.env时清除了缓存)中用于Redis服务器的设置:
...
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
...
此外,这就是我的config / database.php文件中的内容:
...
'redis' => [
'client' => env('REDIS_CLIENT', 'predis'),
'options' => [
'cluster' => env('REDIS_CLUSTER', 'predis'),
],
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_DB', 0),
],
'cache' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_CACHE_DB', 1),
],
],
...
非常感谢你们的帮助,最近几天我一直在为这个问题而苦苦挣扎,我无法解决,所以我将不胜感激!
答案 0 :(得分:2)
在终端中运行此命令
sudo nano /etc/hosts
在“主机”条目中添加您的项目主机
127.0.0.1 https://naturalselection.ie
并保存文件
在终端中运行此命令后
laravel-echo-server start
并通过Laravel Echo享受您的实时通知
答案 1 :(得分:0)
我整理了出来。
要解决此类问题,您必须转到 / etc / hosts 并在其下粘贴以下文本: 127.0.0.1 your_domain_name.com
sudo nano /etc/hosts
127.0.0.1 your_domain_name.com
仅此而已,希望对您有帮助:)