2

我正在尝试使用 SuperSocket 库创建 Websocket 服务器,但文档有限,我找不到有关如何设置和配置 Websocket 服务器的任何信息。

我的主要要求是:

  1. 在代码中创建服务器。
  2. 设置多个监听器
  3. 为工作线程/池线程数提供自定义设置。

        server = new WebSocketServer();
        var serverConfig = new SuperSocket.SocketBase.Config.ServerConfig();
        serverConfig.MaxConnectionNumber = 100000;
        //serverConfig.Port = 222;
        //serverConfig.ListenBacklog = 5000;
    
        var list = new List<SuperSocket.SocketBase.Config.ListenerConfig>(20);
        int port = 223;
        for (int i = 0; i < 1;i++)
        {
            var listener = new SuperSocket.SocketBase.Config.ListenerConfig();
            listener.Port = port;
            listener.Backlog = 1000;
            listener.Ip = "Any";
            listener.Security = "None";
            port++;
    
            list.Add(listener);
        }
    
        serverConfig.Listeners = list;
        server.Setup(serverConfig);
    
        server.NewSessionConnected += server_NewSessionConnected;
        server.SessionClosed += server_SessionClosed;
        server.NewMessageReceived += server_NewMessageReceived;
        server.Start();
    

我尝试了以下代码,但导致以下错误“您无法启动尚未设置的服务器实例”。但是,如果我注释掉 for 循环并取消注释它上面的两行,那么它就可以工作,尽管它只侦听一个端口。

4

1 回答 1

2

只是为了其他人来回答这个未回答的问题。OP 确实有几乎正确的方法,也许容量声明正在干扰,不确定,没有使用它,但是对侦听器的创建稍作改变,它就可以工作。

var list = new List<SuperSocket.SocketBase.Config.ListenerConfig>();
int port = 223;
for (int i = 0; i < 21;i++)
{
   var listener = new SuperSocket.SocketBase.Config.ListenerConfig();
   listener.Port = port;
   port++;
   list.Add(listener);
}
于 2017-10-06T08:08:57.103 回答