websockify deploy: tcp to websocket

需求

  • 原TCP服务,需要支持websocket协议

方案

  • 中间层 websocket to tcp bridge/proxy
  • 代理选型:websockify (协议代理)
  • (可选)入口选型:nginx (入口,TLS卸载)

环境准备

部署

  • (可选)安装nginx

  • (可选)配置nginx,反向代理到websockify

  • 安装websockify

    • 下载websockify
      1
      2
      3
      git clone https://github.com/novnc/websockify.git
      cd websockify
      git checkout v0.12.0
    • 启动websockify
      1
      2
      3
      4
      5
      # 测试方式
      ./run -v --traffic 20803 127.0.0.1:20802

      # 生产方式
      ./run -D 20803 127.0.0.1:20802

测试

  • 启动一个 tcp 服务端:

    1
    nc -k -l 20802
  • postman 发送请求:

    • 不走nginx
      1
      ws://xxx:xxx:xxx:xx:20803
    • 走nginx+tls
      1
      wss://xxx:xxx:xxx:xx:443/?ip=xxx:xxx:xxx:xx&port=20803
  • 备注:websockify 仅支持 binary 数据传输,具体参考 https://github.com/novnc/websockify/issues/365

------ 本文结束 ------
------ 版权声明:转载请注明出处 ------