private void Run() { isRunning = true; socketServer = new WebSocketServer(string.Format("ws://0.0.0.0:{0}", port)); socketServer.ListenerSocket.NoDelay = true; socketServer.RestartAfterListenError = true; socketServer.SupportedSubProtocols = new[] { "nowplaying_data" }; wsThread = new Thread(new ThreadStart(RunTask)); wsThread.Start(); GenerateResponse.WsRef = this; socketServer.Start(socket => { socket.OnOpen = () => { allSockets.Add(socket); IsForced = true; }; socket.OnClose = () => { allSockets.Remove(socket); }; socket.OnMessage = message => { if (message.Length > 0) { GenerateResponse.HandleResponse(message); } }; }); }