others-websocket

others-websocket


前篇


nginx 配置 websocket 代理

  • 在配置中配置, 例如: 反向代理 http://aaa.bbb.com:1234http://ccc.ddd.com:5678

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    server {
    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 未断开, 客户端可以向服务器发消息, 服务器能收到消息并下行给客户端, 但是客户端收不到消息

    经过实际测试, 这种情况的出现是在当前环境有 代理软件, 服务器的下行消息被 代理软件 吃掉了

  • 解决办法: 关掉代理软件即可, 一般线上环境也很少用户使用代理软件; 如果关掉代理软件后速度慢, 可以通过增加一个代理服务器反向代理到游戏服务器, 用户访问代理服务器即可.