使用一个端口号创建多个websocket服务器

时间:2014-07-16 13:19:02

标签: websocket netty

我正在使用netty 4.0.20我想使用不同的URL在同一端口上创建不同的websocket服务器

例如,

WSS://本地主机:1234 / PathA

wss:// localhost:1234 / PathB

WSS://本地主机:1234 /路径C

可能吗?

1 个答案:

答案 0 :(得分:4)

是的,这可以使用反向代理,这可以使用Nginx完成。

这需要您设置一台额外的服务器。

首先,您必须设置每个服务器以侦听不同的端口,然后您需要前端服务器来收听您所需的公共端口(在您的情况下,这是1234)。

因此,假设您有以下服务器

  1. Nginx在0.0.0.0:1234
  2. 收听
  3. 提供/PathA并在0.0.0.0:1235
  4. 收听的Netty
  5. 提供/PathB并在0.0.0.0:1236
  6. 收听的Netty
  7. 提供/PathC并在0.0.0.0:1237
  8. 收听的Netty

    现在你需要做的是编写一个Nginx配置文件,它将连接从HTTP升级到Websocket,然后将每个路径反向代理到相应的服务器。可以为您完成工作的示例配置文件如下。

    {
        listen 1234;
        server_name localhost;
    
        location ~PathA/$ {
            proxy_pass http://localhost:1235;
            proxy_http_version 1.1;
            proxy_set_header Upgrade "websocket";
            proxy_set_header Connection "upgrade";
        }
    
        location ~PathB/$ {
            proxy_pass http://localhost:1236;
            proxy_http_version 1.1;
            proxy_set_header Upgrade "websocket";
            proxy_set_header Connection "upgrade";
        }
    
        location ~PathC/$ {
            proxy_pass http://localhost:1237;
            proxy_http_version 1.1;
            proxy_set_header Upgrade "websocket";
            proxy_set_header Connection "upgrade";
        }
    }