我使用带有redis驱动程序的laravel-echo来广播通知。它在我的本地系统上完美运行。但是在我的服务器上,我收到ERR_CONNECTION_TIMED_OUT
错误。浏览器控制台显示http://ex.example.com:6001/socket.io/socket.io.js net::ERR_CONNECTION_TIMED_OUT
。
我对socket和redis一无所知。所以我只是遵循laravel official doc和laravel-echo-server的指示。并从here进行了一次更改。但是在这种变化的帮助下,我能够让执行剩余的js脚本。 socket.io.js的问题仍未解决(同样在github)。
以下是我遵循的步骤。
JS
import Echo from "laravel-echo"
window.io = require('socket.io-client'); //suggested in github issue
window.Echo = new Echo({
broadcaster: 'socket.io',
host: window.location.hostname + ':6001'
});
laravel回波-server.json
{
"authHost": "http://ex.example.com",
"authEndpoint": "/broadcasting/auth",
"clients": [
{
"appId": "edbf10287972d875",
"key": "96403c9f93e1a2d86185e2d21aa0fae1"
}
],
"database": "redis",
"databaseConfig": {
"redis": {},
"sqlite": {
"databasePath": "/database/laravel-echo-server.sqlite"
}
},
"devMode": true,
"host": null,
"port": "6001",
"protocol": "http",
"socketio": {},
"sslCertPath": "",
"sslKeyPath": ""
}
如果有人知道解决方案,我们将不胜感激。
答案 0 :(得分:2)
这可能听起来很简单,但你检查了服务器上的防火墙设置吗?