我想得到websockets关闭的原因,所以我可以向用户显示正确的消息.
我有
sok.onerror=function (evt)
{//since there is an error, sockets will close so...
sok.onclose=function(e){
console.log("WebSocket Error: " , e);}
Run Code Online (Sandbox Code Playgroud)
代码总是1006,原因总是"".但我想分别说明不同的结果原因.
例如,命令行给出了一个错误原因:"你不能删除它,因为数据库不会让你".但在Chrome的控制台上,原因仍然是"".
还有其他方法可以区分不同的结果原因吗?
我的设置是cloudflare - > nginx - > node.js服务器.我已经确认它不是node.js服务器.问题似乎是cloudflare和nginx的结合.它只适用于nginx和node.js.
这是nginx为websocket连接记录的内容:162.158.75.125 - - [29/Oct/2016:00:01:47 +0000]"GET/HTTP/1.1"101 1047" - ""Mozilla/5.0(X11; Linux x86_64)AppleWebKit/537.36(KHTML,与Gecko一样)Chrome/53.0.2785.143 Safari/537.36"
nginx配置:
server {
listen 443 ssl;
server_name vectorwar.io;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
location / {
proxy_pass http://localhost:7000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 31104000s;
proxy_connect_timeout 31104000s;
proxy_send_timeout 31104000s;
}
}
Run Code Online (Sandbox Code Playgroud)