[英]Laravel Echo Server - Socket.io - Polling fails
Laravel Echo Server通过以下方式启动:
laravel-echo-server start
并运行良好:
L A R A V E L E C H O S E R V E R
version 1.3.1
Starting server...
✔ Running at localhost on port 6001
✔ Channels are ready.
✔ Listening for http events...
✔ Listening for redis events...
Server ready!
CHANNEL private-user:09222583-ef73-5640-bcc8-062b36c4f380.d3d0a4d2-0c95-5f5f-aea4-1dfe1fa36483
但是,在前端,轮询似乎失败了。 “网络”选项卡显示请求不断尝试连接并失败:
URL如下所示: https://example.com:6001/socket.io/?EIO=3&transport=polling&t=MGEIXhf
: https://example.com:6001/socket.io/?EIO=3&transport=polling&t=MGEIXhf
: https://example.com:6001/socket.io/?EIO=3&transport=polling&t=MGEIXhf
laravel-echo-server.json
看起来像这样:
{
"authHost": "https://example.com",
"authEndpoint": "/broadcasting/auth",
"clients": [],
"database": "redis",
"databaseConfig": {
"redis": {
"host": "127.0.0.1",
"password": "56df4h5dfg4"
}
},
"devMode": false,
"host": null,
"port": "6001",
"protocol": "https",
"socketio": {},
"sslCertPath": "/etc/nginx/ssl/example_com/ssl-bundle.crt",
"sslKeyPath": "/etc/nginx/ssl/example_com/example_com.key",
"sslCertChainPath": "",
"sslPassphrase": ""
}
端口6001
似乎在ufw
中处于ufw
:
Status: active
To Action From
-- ------ ----
...
6001 ALLOW Anywhere
...
6001 (v6) ALLOW Anywhere (v6)
...
确认您在js文件中也使用了相同的端口号。
import Echo from 'laravel-echo'
window.io = require('socket.io-client');
window.Echo = new Echo({
broadcaster: 'socket.io',
host: window.location.hostname + ':6001'});
我遇到了完全相同的问题。 在我的本地设置中,一切正常,但在暂存过程中, ufw
阻止了每个传入的请求,/ /var/log/ufw.log
显示它们/var/log/ufw.log
阻止。 我已经在ufw
中ufw
了6001,我什至还可以通过ufw
访问ufw
所有内容,但是请求仍然被阻止。
尽管我真的不想安全隐患,但我还是短暂禁用了ufw
,一切都开始起作用,连接立即建立,没有超时。 然后,我很快又重新启用了ufw
,一切继续进行。 我在其他浏览器中测试了新的连接-都正常。
因此,尽管尝试关闭防火墙然后再打开确实是一个糟糕的建议,但它确实对我有用。
我希望其他人能够以一种安全的方式来诊断和解决此类UFW
问题。
在我的情况下,我找到了问题的原因。
我用ufw设置的第一条规则是允许ssh流量。 然后,我安装了fail2ban,该过程的一部分使用iptables-persistent保存了iptables。
当我以后添加ufw规则以允许6001时,一切正常。
重新启动后6001停止打开,即使它在ufw的状态输出中被列为打开-之所以不起作用,是因为iptables已被恢复,并且添加了6001规则之前已复制了副本。
因此,如果您运行了iptables-persistent,请确保使用
sudo dpkg-reconfigure iptables-persistent
添加任何新的ufw规则后。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.