错误提示
ERR_CONNECTION_TIMED_OUT(连接超时)
一般是以下原因:
1、服务器防火墙阻止了连接,可以临时关闭防火墙试下
2、如果是云服务器,安全组也可能会阻止连接建立,需要到管理后台开放对应端口
3、服务器不存在或者没有启动
4、如果客户端使用了域名连接,域名可能指向了错误的服务器 ip
5、客户端访问的 ip 是服务器内网 ip,并且客户端和服务端不在一个局域网
ERR_INVALID_HTTP_RESPONSE
1. WebSocket connection to 'ws://xxx.com:xx/' failed: Error during WebSocket handshake:net::ERR_INVALID_HTTP_RESPONSE
2.WebSocket connection to 'ws://xxx.com:xx/' failed: Error during WebSocket handshake: Unexpected response code: xxx
这两个错误原因:通讯协议不一致导致的
客户端使用的是 ws 连接是 websocket 协议。服务端也需要是
websocket 协议才行,服务端监听部分代码需要指定 websocket 协议才能通讯,例如下面这样
如果是 gatewayWorker,监听部分代码类似
// websocket 协议,这样客户端才能用 ws://...来连。xxxx 为端口不用改动
$gateway = new Gateway('websocket://0.0.0.0:xxxx');
如果是 Workerman 则是
// websocket 协议,这样客户端才能用 ws://...来连。xxxx 为端口不用改动
$worker = new Worker('websocket://0.0.0.0:xxxx');
Nginx 下的字体跨域问题。
直接在配置文件中加入一下代码便可解决:
location ~* \.(eot|ttf|woff|svg|otf)$ {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
}
ERR_CONNECTION_REFUSED
原因:Socket 服务已经断开连接
解决方案:重新启动 socket。
Linux 环境:php start.php start
Windows 环境:双击 start_for_win.bat