others-websocket
others-websocket
前篇
- 一遍就能读懂的WebSocket协议详解 - https://cloud.tencent.com/developer/article/2371056
nginx 配置 websocket 代理
在配置中配置, 例如: 反向代理 http://aaa.bbb.com:1234 到 http://ccc.ddd.com:5678
1
2
3
4
5
6
7
8
9
10
11
12
13
14server {
listen 1234;
server_name aaa.bbb.com;
location / {
proxy_pass http://ccc.ddd.com:5678;
proxy_http_version 1.1;
proxy_connect_timeout 15s;
proxy_read_timeout 30s;
proxy_send_timeout 30s;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
踩坑
websocket 链接未断开, 客户端收不到服务器消息
场景: 客户端与服务器的 websocket 未断开, 客户端可以向服务器发消息, 服务器能收到消息并下行给客户端, 但是客户端收不到消息
经过实际测试, 这种情况的出现是在当前环境有 代理软件, 服务器的下行消息被 代理软件 吃掉了
解决办法: 关掉代理软件即可, 一般线上环境也很少用户使用代理软件; 如果关掉代理软件后速度慢, 可以通过增加一个代理服务器反向代理到游戏服务器, 用户访问代理服务器即可.