问题描述
我正在使用Redis,以及socket.io,laravel-echo-server和VUe。
在我的本地计算机上,它工作正常,但是当我上传并在服务器中进行配置时,唯一的问题是laravel-echo-server甚至没有尝试进行身份验证或发送错误,但是当我发送或广播事件:
运行事件时,它反映在Laravel-echo-server中:
生产服务器图像
但是它甚至没有尝试监听或认证,这是我在Vue中的监听代码:
生产服务器图像
mounted() {
//LaraVEL ECHO,SOCKET.IO,REdis,etc
Echo.private(`messages.${this.user.id}`)
.listen('NewMessage',(e) => {
console.log("LLEGÓ MENSAJE NUEVO");
console.log(e);
this.handleIncoming(e.message);
});
但是正如我提到的那样,它在Laravel-echo-server控制台中没有显示任何内容。
使用相同的配置,这就是它在本地计算机中的外观:
本地主机图像
正如我所说,它甚至不尝试进行身份验证或连接到频道。
这是我的laravel-echo-server.json:
生产服务器图像
我想念什么吗? 为什么它可以处理事件但不收听,或者至少尝试收听它们?
非常感谢您!
编辑1:
这是我的.env文件的一部分
生产服务器图像
broADCAST_DRIVER=redis
CACHE_DRIVER=file
QUEUE_CONNECTION=redis
SESSION_DRIVER=file
SESSION_LIFETIME=120
REdis_HOST=127.0.0.1
REdis_PASSWORD=null
REdis_PORT=6379
这是我的bootstrap.js的一部分
生产服务器图像
import Echo from "laravel-echo"
window.io = require('socket.io-client');
window.Echo = new Echo({
broadcaster: 'socket.io',host: '127.0.0.1:6001' //I CHANGED TO STATICALLY GO TO 127.0.0.1
});
这是我的config / database.PHP的一部分:
生产服务器图像
在localhost中,使用http:127.0.0.1:8000可以正常工作 和laravel echo的127.0.0.1:6001。
问题是当我在AWS Lightsail中上载和配置时,域为http://test1.erpnegocios.com,服务器中的路由为/ var / www / html / test1
编辑2:
我一直在阅读文章,指出bootstrap.js(socket.io)中的主机必须与laravel-echo-server.json中的主机相同,这就是为什么我同时使用这两个主机的原因:'127.0.0.1:6001 '(如图片所示),但问题仍然存在。
如果我运行sudo service redis-server stop,则laravel-echo控制台停止工作,因此我认为连接良好,但是我无法使客户端连接到通道,也无法连接到公共或私有
编辑3
伙计们,我将我的bootstrap.js和laravel-echo-server.json更改如下:
bootstrap.js
window.Echo = new Echo({
broadcaster: 'socket.io',host: window.location.hostname + ':6001' //El host de laravel-echo-server
});
laravel-echo-server.json
{
"authHost": "http://test1.erpnegocios.com:8000","authEndpoint": "/broadcasting/auth","clients": [],"database": "redis","databaseConfig": {
"redis": {},"sqlite": {
"databasePath": "/database/laravel-echo-server.sqlite"
}
},"devMode": true,"host": null,"port": "6001","protocol": "http","socketio": {},"secureOptions": 67108864,"sslCertPath": "","sslKeyPath": "","sslCertChainPath": "","sslPassphrase": "","subscribers": {
"http": true,"redis": true
},"apiOriginAllow": {
"allowCors": false,"allowOrigin": "","allowMethods": "","allowHeaders": ""
}
}
我还在服务器中打开了端口8000,现在正在运行laravel-echo-server控制台,我看到:
基本上它现在可以工作,但只能在公共频道中使用 ,我认为该错误与另一个配置有关,让我解释一下:
服务器的主IP为3.83.87.137
在该服务器中,我有多个项目:
/ var / www / html / test1
/ var / www / html / erp
/ var / www / html / test等。
IP(3.83.87.137)指向/ var / www / html / erp,但我首先配置和使用test1。我相信我无法验证,因为将laravel-echo-server.json authHost指向3.83.87.137:8000指向/ var / www / html / erp,对吗?我是否应该更改配置,以便3.83.87.137指向/ var / www / html / o我可以将laravel-echo-server.json authHost配置为3.83.87.137:8000/test1?
非常感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)