1

我正在使用 laravel-echo 和 redis 驱动程序来广播通知。它在我的本地系统上完美运行。但是在我的服务器上,我遇到了ERR_CONNECTION_TIMED_OUT错误。浏览器控制台显示http://ex.example.com:6001/socket.io/socket.io.js net::ERR_CONNECTION_TIMED_OUT.

我对socket和redis一无所知。所以我只是按照laravel 官方文档laravel-echo-server 的指示。并从这里只做了一个改变。但是在这种变化的帮助下,我可以让执行剩余的 js 脚本。socket.io.js 的问题仍未解决(也在github中)。

这是我遵循的步骤。

  1. 关注Laravel 官方文档
  2. 安装Redis 服务器
  3. 安装laravel-echo-server
  4. 在我的项目中安装socket.io-clent

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-echo-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": ""
}

如果有人知道解决方案,将不胜感激。

4

1 回答 1

2

这听起来很简单,但是您是否检查了服务器上的防火墙设置?

编辑:感谢@AkshayVaghasiya 分享正确设置防火墙的说明[阅读此处]

于 2017-04-29T14:11:38.063 回答