2016-07-31 108 views
1

我想創建一個使用SuperSocket庫的Websocket服務器,但文檔是有限的,我找不到任何有關如何設置&配置websocket服務器的信息。如何在代碼中創建一個SuperSocket WebSocket服務器

我的主要要求是:

  1. 在代碼中創建服務器。
  2. 設置多個收聽者
  3. 爲worker/pool線程的數量提供自定義設置。

    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循環並取消註釋上面的兩行,那麼它可以工作,儘管它只監聽一個端口。

回答

1

只是爲了別人來這個未答覆的問題。 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); 
}