private async void Start_Click(object sender, RoutedEventArgs e) { if (this.server != null && this.server.IsListening) { this.server.Stop(); } var part = Address.Text.Split(":"); var ip = part[0]; var port = int.Parse(part[1]); WatsonWsServer server = new WatsonWsServer(ip, port, false); server.ClientConnected += ClientConnected; server.ClientDisconnected += ClientDisconnected; server.MessageReceived += MessageReceived; await server.StartAsync(); if (server.IsListening) { this.server = server; Content.Text += $"Server Start\n\n"; } else { Content.Text += $"Can not start the server\n\n"; } }
static void Main(string[] args) { // test1 _Server = new WatsonWsServer("localhost", 9000, false); _Server.ClientConnected += (s, a) => { /* Console.WriteLine("Client " + a.IpPort + " connected"); */ }; _Server.ClientDisconnected += (s, a) => { /* Console.WriteLine("Client " + a.IpPort + " disconnected"); */ }; _Server.MessageReceived += (s, a) => { /* Console.WriteLine(Encoding.UTF8.GetString(a.Data)); */ }; _Server.Start(); Console.WriteLine("Test 1 with server started: " + ClientTask()); // test2 Task.Delay(1000).Wait(); _Server.Stop(); Console.WriteLine("Test 2 with server stopped: " + ClientTask()); // test3 Task.Delay(1000).Wait(); _Server.Start(); Console.WriteLine("Test 3 with server restarted: " + ClientTask()); // test4 Task.Delay(1000).Wait(); _Server.Dispose(); Console.WriteLine("Test 4 with server disposed: " + ClientTask()); // test5 Task.Delay(1000).Wait(); _Server = new WatsonWsServer("localhost", 9000, false); _Server.ClientConnected += (s, a) => { /* Console.WriteLine("Client " + a.IpPort + " connected"); */ }; _Server.ClientDisconnected += (s, a) => { /* Console.WriteLine("Client " + a.IpPort + " disconnected"); */ }; _Server.MessageReceived += (s, a) => { /* Console.WriteLine(Encoding.UTF8.GetString(a.Data)); */ }; _Server.Start(); Console.WriteLine("Test 5 with server started: " + ClientTask()); }
public BasicControlMessageConsumer(WatsonWsServer socket) { this.socket = socket; socket.ClientConnected += ClientConnected; socket.ClientDisconnected += ClientDisconnected; socket.Start(); }
public Worker(IHostApplicationLifetime hostApplicationLifetime, ILogger <Worker> logger, IMessageProcessor messageProcessor) { _hostApplicationLifetime = hostApplicationLifetime; _logger = logger; _messageProcessor = messageProcessor ?? throw new ArgumentNullException(nameof(messageProcessor)); #if !SKIP_WS _server = new WatsonWsServer("127.0.0.1", 4321, false); #endif }
public AsynchronousWebSocketListener(string IP, int Port) { WatsonWsServer server = new WatsonWsServer(IP, Port, true | false); server.ClientConnected += ClientConnected; server.ClientDisconnected += ClientDisconnected; server.MessageReceived += MessageReceived; server.Start(); }
private static void InitializeServer() { server = new WatsonWsServer(serverConfig.Ip, serverConfig.Port, serverConfig.Ssl); server.ClientConnected += ClientConnected; server.ClientDisconnected += ClientDisconnected; server.MessageReceived += MessageReceived; log.Add($"Server running at {serverConfig.Ip}:{serverConfig.Port}"); }
static void InitializeServer() { _Server = new WatsonWsServer(_ServerIp, _ServerPort, _Ssl); _Server.AcceptInvalidCertificates = _AcceptInvalidCertificates; _Server.ClientConnected += ClientConnected; _Server.ClientDisconnected += ClientDisconnected; _Server.MessageReceived += MessageReceived; _Server.Logger = Logger; _Server.HttpHandler = HttpHandler; }
public WebsocketService() { Server = new WatsonWsServer("127.0.0.1", 5003, false); Clients = new List <string>(); Server.ClientConnected += Server_ClientConnected; Server.ClientDisconnected += Server_ClientDisconnected; Server.MessageReceived += Server_MessageReceived; Console.WriteLine("starting server"); Server.Start(); }
static void InitializeServer() { server = new WatsonWsServer( serverIp, serverPort, ssl); server.ClientConnected += ClientConnected; server.ClientDisconnected += ClientDisconnected; server.MessageReceived += MessageReceived; server.Logger = Logger; server.Start(); }
public void Start() { Instance = this; manager = new ServerManager(); server = new WatsonWsServer("", 3005, false); server.ClientConnected += ClientConnected; server.ClientDisconnected += ClientDisconnected; server.MessageReceived += MessageReceived; server.Start(); Console.WriteLine("Server started."); }
private void Stop_Click(object sender, RoutedEventArgs e) { if (this.server == null || !this.server.IsListening) { Content.Text += $"Server Unstart\n\n"; return; } this.server.Stop(); this.server.Dispose(); this.server = null; Content.Text += $"Server Stop\n\n"; }
public void Start() { if (IsActive) { Stop(); } _socket = new WatsonWsServer(IP, Port, false); _socket.MessageReceived += Socket_MessageReceived; _socket.Start(); _timer.Interval = KeepAliveInterval.TotalMilliseconds; _timer.Start(); }
public void Start() { try { _server = new WatsonWsServer(ServerUrl.DnsSafeHost, ServerUrl.Port, false); _server.MessageReceived += Server_MessageReceived; _server.Start(); _timer.Start(); IsOpen = true; } catch (Exception ex) { Error?.Invoke(this, ex); } }
static void InitializeServer() { // original constructor _Server = new WatsonWsServer(_ServerIp, _ServerPort, _Ssl); // URI-based constructor // if (_Ssl) _Server = new WatsonWsServer(new Uri("https://" + _ServerIp + ":" + _ServerPort)); // else _Server = new WatsonWsServer(new Uri("http://" + _ServerIp + ":" + _ServerPort)); _Server.ClientConnected += ClientConnected; _Server.ClientDisconnected += ClientDisconnected; _Server.MessageReceived += MessageReceived; _Server.Logger = Logger; _Server.HttpHandler = HttpHandler; }
public bool OpenConnection() { try { WatsonWsServer server = new WatsonWsServer("127.0.0.1", 3000, false); server.ClientConnected += ClientConnected; server.ClientDisconnected += ClientDisconnected; server.MessageReceived += MessageReceived; server.Logger = Logger; server.Start(); return(true); } catch (Exception e) { Console.WriteLine(e); return(false); } }
public static void Run(Arguments args) { // Save the configuration for later Args = args; // Configure the Serilog Logging Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.Console() .CreateLogger(); // Print the a message with information about the current system if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { Log.Information($"Starting LambentLight Daemon in Windows"); } else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { Log.Information($"Starting LambentLight Daemon in Linux"); } // If we are on something not supported, return else { Log.Fatal("Unsuported operating system detected!"); Log.Fatal("LambentLight can only be used on Windows and Linux"); Environment.Exit(1); } // And run the websocket server WatsonWsServer server = new WatsonWsServer(args.IP, args.Port, args.SSL) { PermittedIpAddresses = args.Allowed.ToList() }; server.MessageReceived += Server_MessageReceived; server.ClientConnected += Server_ClientConnected; server.ClientDisconnected += Server_ClientDisconnected; server.ServerStopped += Server_ServerStopped; Log.Information("Starting LambentLight in Daemon Mode on {0}:{1}", args.IP, args.Port); server.Start(); Thread.Sleep(Timeout.Infinite); }
static void InitializeServerMultiple() { // original constructor List <string> hostnames = new List <string> { "192.168.1.163", "127.0.0.1" }; _Server = new WatsonWsServer(hostnames, _ServerPort, _Ssl); // URI-based constructor // if (_Ssl) _Server = new WatsonWsServer(new Uri("https://" + _ServerIp + ":" + _ServerPort)); // else _Server = new WatsonWsServer(new Uri("http://" + _ServerIp + ":" + _ServerPort)); _Server.ClientConnected += ClientConnected; _Server.ClientDisconnected += ClientDisconnected; _Server.MessageReceived += MessageReceived; _Server.Logger = Logger; _Server.HttpHandler = HttpHandler; }
static void Main(string[] args) { using (WatsonWsServer wss = new WatsonWsServer(_Hostname, _Port, false)) { wss.ClientConnected += (s, e) => Console.WriteLine("Client connected: " + e.IpPort); wss.ClientDisconnected += (s, e) => Console.WriteLine("Client disconnected: " + e.IpPort); wss.MessageReceived += (s, e) => { Console.WriteLine("Server message received from " + e.IpPort + ": " + Encoding.UTF8.GetString(e.Data)); _ClientIpPort = e.IpPort; }; wss.Start(); Thread.Sleep(2500); using (WatsonWsClient wsc = new WatsonWsClient(_Hostname, _Port, false)) { wsc.ServerConnected += (s, e) => Console.WriteLine("Client connected to server"); wsc.ServerDisconnected += (s, e) => Console.WriteLine("Client disconnected from server"); wsc.MessageReceived += (s, e) => Console.WriteLine("Client received message from server: " + Encoding.UTF8.GetString(e.Data)); wsc.Start(); Thread.Sleep(2500); Console.WriteLine("Sending message from client to server..."); wsc.SendAsync("Hello from client").Wait(); Thread.Sleep(2500); Console.WriteLine("Sending message from server to client..."); wss.SendAsync(_ClientIpPort, "Hello from server").Wait(); Console.WriteLine("Press ENTER to exit"); Console.ReadLine(); } } }
public void Stop() { _timer.Stop(); _socket?.Dispose(); _socket = null; }
public WebSocket(string address, int port) { Socket = new WatsonWsServer(address, port, false, true, null, OnClientConnect, OnClientDisconnect, OnMessageReceived, false); Console.WriteLine("Listening on IP/TCP connections at port " + port + "..." + Environment.NewLine); }
public Client(string ipPort, WatsonWsServer server) { _ipPort = ipPort; _server = server; }
static void Main(string[] args) { msgData = Encoding.UTF8.GetBytes(RandomString(msgLength)); sendDelay = numClients * 20; using (server = new WatsonWsServer(hostname, port, false)) { #region Start-Server serverStats = new Statistics(); server.ClientConnected += (s, e) => { Console.WriteLine("Client connected: " + e.IpPort); lock (clientsLock) { clients.Add(e.IpPort); } }; server.ClientDisconnected += (s, e) => { Console.WriteLine("*** Client disconnected: " + e.IpPort); lock (clientsLock) { if (clients.Contains(e.IpPort)) { clients.Remove(e.IpPort); } } }; server.MessageReceived += (s, e) => { serverStats.AddRecv(e.Data.Length); }; // server.Logger = Logger; server.Start(); #endregion #region Start-and-Wait-for-Clients for (int i = 0; i < numClients; i++) { Console.WriteLine("Starting client " + (i + 1) + "..."); Task.Run(() => ClientTask()); Task.Delay(250).Wait(); } while (true) { Task.Delay(1000).Wait(); int connected = 0; lock (clientsLock) { connected = clients.Count; } if (connected == numClients) { break; } Console.WriteLine(connected + " of " + numClients + " connected, waiting"); } Console.WriteLine("All clients connected!"); serverReady = true; #endregion #region Send-Messages-to-Clients for (int i = 0; i < messagesPerClient; i++) { for (int j = 0; j < numClients; j++) { server.SendAsync(clients[j], msgData).Wait(); serverStats.AddSent(msgData.Length); } } #endregion #region Wait-for-Clients while (true) { Task.Delay(5000).Wait(); int remaining = 0; lock (clientsLock) { remaining = clients.Count; if (remaining < 1) { break; } Console.WriteLine(DateTime.Now.ToUniversalTime().ToString("HH:mm:ss.ffffff") + " waiting for " + remaining + " clients: "); foreach (string curr in clients) { Console.WriteLine("| " + curr); } } } #endregion #region Statistics Console.WriteLine(""); Console.WriteLine(""); Console.WriteLine("Server statistics:"); Console.WriteLine(" " + serverStats.ToString()); Console.WriteLine(""); Console.WriteLine("Client statistics"); foreach (Statistics stats in clientStats) { Console.WriteLine(" " + stats.ToString()); } Console.WriteLine(""); #endregion } }
static void Main(string[] args) { string header = "[Server] "; using (server = new WatsonWsServer(hostname, port, false)) { #region Start-Server server.ClientConnected += (s, e) => { clientIpPort = e.IpPort; Console.WriteLine(header + "client connected: " + e.IpPort); }; server.ClientDisconnected += (s, e) => { clientIpPort = null; Console.WriteLine(header + "client disconnected: " + e.IpPort); }; server.MessageReceived += async(s, e) => { // echo it back serverStats.AddRecv(e.Data.Count); await server.SendAsync(e.IpPort, e.Data); serverStats.AddSent(e.Data.Count); }; server.Logger = Logger; server.Start(); Console.WriteLine(header + "started"); #endregion #region Start-Client-and-Send-Messages Task.Run(() => ClientTask()); Task.Delay(1000).Wait(); while (String.IsNullOrEmpty(clientIpPort)) { Task.Delay(1000).Wait(); Console.WriteLine(header + "waiting for client connection"); } ; Console.WriteLine(header + "detected client " + clientIpPort + ", sending messages"); for (int i = 0; i < serverSendMessageCount; i++) { byte[] msgData = Encoding.UTF8.GetBytes(RandomString(serverMessageLength)); server.SendAsync(clientIpPort, msgData).Wait(); serverStats.AddSent(msgData.Length); } Console.WriteLine(header + "messages sent"); #endregion #region Wait-for-and-Echo-Client-Messages while (!String.IsNullOrEmpty(clientIpPort)) { Console.WriteLine(header + "waiting for client to finish"); Task.Delay(1000).Wait(); } #endregion #region Statistics Console.WriteLine(""); Console.WriteLine(""); Console.WriteLine("Server statistics:"); Console.WriteLine(" " + serverStats.ToString()); Console.WriteLine(""); Console.WriteLine("Client statistics"); Console.WriteLine(" " + clientStats.ToString()); Console.WriteLine(""); #endregion Console.WriteLine("Press ENTER to exit"); Console.ReadLine(); } }
static void Main(string[] args) { Console.Write("Server IP : "); serverIp = Console.ReadLine(); Console.Write("Server Port : "); serverPort = Convert.ToInt32(Console.ReadLine()); Console.Write("SSL (true/false) : "); ssl = Convert.ToBoolean(Console.ReadLine()); WatsonWsServer server = new WatsonWsServer(serverIp, serverPort, ssl, true, null, ClientConnected, ClientDisconnected, MessageReceived, true); bool runForever = true; while (runForever) { Console.Write("Command [? for help]: "); string userInput = Console.ReadLine(); List <string> clients; string ipPort; if (String.IsNullOrEmpty(userInput)) { continue; } switch (userInput) { case "?": Console.WriteLine("Available commands:"); Console.WriteLine(" ? help (this menu)"); Console.WriteLine(" q quit"); Console.WriteLine(" cls clear screen"); Console.WriteLine(" list list clients"); Console.WriteLine(" send send message to client"); Console.WriteLine(" kill disconnect a client"); break; case "q": runForever = false; break; case "cls": Console.Clear(); break; case "list": clients = new List <string>(server.ListClients()); if (clients != null && clients.Count > 0) { Console.WriteLine("Clients"); foreach (string curr in clients) { Console.WriteLine(" " + curr); } } else { Console.WriteLine("None"); } break; case "send": Console.Write("IP:Port: "); ipPort = Console.ReadLine(); Console.Write("Data: "); userInput = Console.ReadLine(); if (String.IsNullOrEmpty(userInput)) { break; } server.SendAsync(ipPort, Encoding.UTF8.GetBytes(userInput)); break; case "kill": Console.Write("IP:Port: "); ipPort = Console.ReadLine(); server.KillClient(ipPort); break; default: break; } } }