开发环境配置websocket
踢人操作已实现,可上传到生产环境却出错了,
出错的原因是生产环境使用的是https
,报错如下:
百度了半天找到结局方法是websocket
也用SSL
协议,即wss
,
html页面上的ws
var ws = new WebSocket('ws://blog.mrabit.com');
需要替换成wss
:
var ws = new WebSocket('wss://blog.mrabit.com');
原以为这样就完工了,结果又出现报错:
再次百度.......
可以通http
模块实现wss
代理,需要修改nginx
的代理配置,新增配置:
location /wss {
proxy_pass http://127.0.0.1:8088/;
proxy_read_timeout 60s;
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'Upgrade';
}
html
上的websocket
连接需要换成:
var ws = new WebSocket('wss://blog.mrabit.com/wss');
重启nginx,完工