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

使用一个端口号创建多个websocket服务器,websocket,netty,Websocket,Netty,我使用的是netty 4.0.20,我想在同一端口上使用不同的URL创建不同的websocket服务器 比如说,, wss://localhost:1234/PathA wss://localhost:1234/PathB wss://localhost:1234/PathC 这可能吗?是的,这可以通过使用反向代理实现,这可以通过Nginx实现 这将需要在您的设置中增加一台服务器 首先,必须将每个服务器设置为侦听不同的端口,然后需要前端服务器侦听所需的公共端口(在您的示例中,这是1234) 假

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

比如说,, wss://localhost:1234/PathA

wss://localhost:1234/PathB

wss://localhost:1234/PathC


这可能吗?

是的,这可以通过使用反向代理实现,这可以通过Nginx实现

这将需要在您的设置中增加一台服务器

首先,必须将每个服务器设置为侦听不同的端口,然后需要前端服务器侦听所需的公共端口(在您的示例中,这是1234)

假设您有以下服务器

  • Nginx正在收听
    0.0.0.0:1234
  • 服务于
    /PathA
    并监听
    0.0.0.0:1235
  • 服务于
    /PathB
    并在
    0.0.0.0:1236收听的Netty
  • 服务于
    /PathC
    并监听
    0.0.0.0:1237
  • 现在您需要做的是编写一个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";
        }
    }