public void WebSocketInit() { string websocketPath = Utils.GetConfig("websocketPath"); WebSocketServer wsServer = new WebSocketServer(websocketPath); wsServer.Start(socket => { //以下的设置,每当一个新连接进来,都会生效。 socket.OnOpen = () => { //自定义处理 if (this.WsOpenEventHandler != null) { WebsocketEventArgs args = new WebsocketEventArgs(); this.WsOpenEventHandler(this, args); } }; socket.OnClose = () => { //从连接集合中移除 for (int i = socketListHs.Count - 1; i >= 0; i--) { if (socketListHs[i] == null) { socketListHs.Remove(i); } } PlayerCount = socketListHs.Count; //自定义处理 if (this.WsCloseEventHandler != null) { WebsocketEventArgs args = new WebsocketEventArgs(); this.WsCloseEventHandler(this, args); } }; socket.OnMessage = (message) => { ClientData cData = Utils.JsonToObject <ClientData>(message); WebSocketMessage wsocketMsg = new WebSocketMessage(socket.ConnectionInfo.ClientIpAddress, socket.ConnectionInfo.ClientPort.ToString(), socket.ConnectionInfo.Id.ToString("N"), cData); if (Convert.ToBoolean(cData.IsConnSign)) { //收到用户上线信息,更新socket列表 if (!socketListHs.ContainsKey(cData.IdentityMd5)) { socketListHs.Add(cData.IdentityMd5, socket); } else { socketListHs[cData.IdentityMd5] = socket; } PlayerCount = socketListHs.Count; } if (this.WsListenEventHandler != null) { WebsocketEventArgs args = new WebsocketEventArgs(); args.WebSocketMessage = wsocketMsg; this.WsListenEventHandler(this, args); } }; }); }