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<IWebSocketConnection>();
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();
}
}
}