如何在代码中创建SuperSocket WebSocket服务器

本文关键字:SuperSocket WebSocket 服务器 创建 代码 | 更新日期: 2023-09-27 17:59:25

我正试图使用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循环并取消注释上面的两行,那么它就可以工作了,尽管它只侦听一个端口

只是为了其他人来回答这个没有答案的问题。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);
}

如何在代码中创建SuperSocket WebSocket服务器