using System; using System.Collections.Generic; using System.Security.Cryptography.X509Certificates; using Fleck; using Newtonsoft.Json; 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("wss://127.0.0.1:" + port); webSocketServer.Certificate = new X509Certificate2("D:\\SGGLAPI\\bin\\wzgl.hfnbd.com.pfx", "1y1fib61"); 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"); }; }); } } }