using Aspose.Words.Lists; using Fleck; using Newtonsoft.Json; using StackExchange.Redis; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace WebAPI.Common { public class PersonKqSocketSersvices { public static WebSocketServer webSocketServer; public static Dictionary allSockets; public static void init(int port) { allSockets = new Dictionary(); webSocketServer = new WebSocketServer("ws://0.0.0.0:" + port); webSocketServer.Start(socket => { socket.OnOpen = () => { }; socket.OnClose = () => { string socketKey = null; foreach(var key in allSockets.Keys) { if(allSockets[key] == socket) { socketKey = key; } } if (socketKey != null) { allSockets.Remove(socketKey); } }; socket.OnMessage = message => { Dictionary msg = JsonConvert.DeserializeObject>(message); string projectid = msg["projectid"].ToString(); if (allSockets.ContainsKey(projectid)) { allSockets[projectid] = socket; } else { allSockets.Add(projectid , socket); } socket.Send("newinout"); }; }); } } }