Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create a SuperSocket WebSocket server in code

I'm trying to create a Websocket server using SuperSocket library but documentation is limited and I can't find any info on how to setup & configure a websocket server.

My key requirements are:

  1. Create the Server in code.
  2. Setup multiple listeners
  3. Provide custom setting for number of worker/pool threads.

        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();
    

I tried following code but it result in following error "You cannot start a server instance which has not been setup yet". However, if I comment out the for loop and uncomment the two lines above it then it works, although it only listens on one port.

like image 228
tunafish24 Avatar asked Jul 15 '26 07:07

tunafish24


1 Answers

Just for the sake of others coming to this unanswered question. The OP does have the method nearly correct, maybe capacity declaration is interfering, not sure, didn't play with it, but with a slight change to the listener creation, it works.

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);
}
like image 183
KevYou Avatar answered Jul 20 '26 12:07

KevYou



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!