using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using Fleck; namespace FlekTest { class Program { static void Main(string[] args) { FleckLog.Level = LogLevel.Debug; var allSockets = new List(); var server = new WebSocketServer("ws://0.0.0.0:509"); server.Start(socket => { socket.OnOpen = () => { Console.WriteLine("Socket Opened"); allSockets.Add(socket); }; socket.OnClose = () => { Console.WriteLine("Socket" + socket.ConnectionInfo + "Closed"); allSockets.Remove(socket); }; socket.OnMessage = message => { Console.WriteLine(message); foreach(IWebSocketConnection sc in allSockets.Where(sc => socket.ConnectionInfo.ClientIpAddress != sc.ConnectionInfo.ClientIpAddress)) { sc.Send(message); } }; }); string input = ""; while (input != "q") { foreach (var socket in allSockets.ToList()) { socket.Send(input); } input = Console.ReadLine(); } server.Dispose(); Console.WriteLine("Server Closed"); Console.ReadKey(); } } }