public static async Task Emit(SocketData socketData) { if (_client?.Connected == true) { _client.SendAsync(JsonConvert.SerializeObject(socketData)); } }
public void Subscribe(int topicID, object[] data) { SubscriptionRequest sr = new SubscriptionRequest(topicID, data); byte[] srb = Helper.ObjectToByteArray(sr); LinkClient.SendAsync(srb); }
public Response Exchange(Request request) { DateTime startWaitTime = DateTime.Now; responseToWaitFor = new Response { Header = new ResponseHeader() { MessageNumber = request.Header.MessageNumber } }; client.SendAsync(converter.ConvertStringToBytes(converter.ConvertObjectToJson(request))); while (responseToWaitFor.Header.Targets is null) { if (DateTime.Now > startWaitTime.AddSeconds(15)) { responsesToIgnore.Add(responseToWaitFor.Header.MessageNumber); responseToWaitFor = null; throw new Exception("Request timed out"); } Thread.Sleep(100); } if (responseToWaitFor.Header.Code == ResponseCode.UnplannedError) { throw new Exception(responseToWaitFor.Header.Message); } return(responseToWaitFor); }
static void ProcessOutput(string outputMessage) { if (DEBUG) { Console.Error.WriteLine("Outgoing message: " + outputMessage); } if (outputMessage.Split(",")[0] == "cartload") { inputQueue.Enqueue(initMessage); outputMessage = "disconnect,1,-2," + initMessage.Split(",")[3]; } connection.SendAsync(Encoding.UTF8.GetBytes(outputMessage)); }
static bool ClientTask() { try { WatsonWsClient client = new WatsonWsClient("localhost", 9000, false); client.Start(); Task.Delay(1000).Wait(); return(client.SendAsync("Hello").Result); } catch (Exception e) { Console.WriteLine(e.ToString()); return(false); } }
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(); } } }
static void ClientTask() { Statistics stats = new Statistics(); using (WatsonWsClient client = new WatsonWsClient(hostname, port, false)) { #region Start-Client client.ServerConnected += (s, e) => { Console.WriteLine("Client detected connection to " + hostname + ":" + port); }; client.ServerDisconnected += (s, e) => { Console.WriteLine("Client disconnected from " + hostname + ":" + port); }; client.MessageReceived += (s, e) => { stats.AddRecv(e.Data.Length); }; // client.Logger = Logger; client.Start(); #endregion #region Wait-for-Server-Ready while (!serverReady) { Console.WriteLine("Client waiting for server..."); Task.Delay(2500).Wait(); } Console.WriteLine("Client detected server ready!"); #endregion #region Send-Messages-to-Server for (int i = 0; i < messagesPerClient; i++) { Task.Delay(sendDelay).Wait(); client.SendAsync(msgData).Wait(); stats.AddSent(msgData.Length); } #endregion #region Wait-for-Server-Messages while (stats.MsgRecv < messagesPerClient) { Task.Delay(1000).Wait(); } Console.WriteLine("Client exiting: " + stats.ToString()); lock (clientStatsLock) { clientStats.Add(stats); } #endregion } }
public void Send() { _client.SendAsync(Encoding.UTF8.GetBytes("test")); }
static void Main(string[] args) { _ServerIp = InputString("Server IP:", "localhost", true); _ServerPort = InputInteger("Server port:", 9000, true, true); _Ssl = InputBoolean("Use SSL:", false); InitializeClient(); bool runForever = true; while (runForever) { Console.Write("Command [? for help]: "); string userInput = Console.ReadLine(); 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(" send text send text to the server"); Console.WriteLine(" send bytes send binary data to the server"); Console.WriteLine(" stats display client statistics"); Console.WriteLine(" status show if client connected"); Console.WriteLine(" dispose dispose of the connection"); Console.WriteLine(" connect connect to the server if not connected"); Console.WriteLine(" reconnect disconnect if connected, then reconnect"); Console.WriteLine(" close close the connection"); break; case "q": runForever = false; break; case "cls": Console.Clear(); break; case "send text": Console.Write("Data: "); userInput = Console.ReadLine(); if (String.IsNullOrEmpty(userInput)) { break; } if (!_Client.SendAsync(userInput).Result) { Console.WriteLine("Failed"); } else { Console.WriteLine("Success"); } break; case "send bytes": Console.Write("Data: "); userInput = Console.ReadLine(); if (String.IsNullOrEmpty(userInput)) { break; } if (!_Client.SendAsync(Encoding.UTF8.GetBytes(userInput)).Result) { Console.WriteLine("Failed"); } break; case "stats": Console.WriteLine(_Client.Stats.ToString()); break; case "status": if (_Client == null) { Console.WriteLine("Connected: False (null)"); } else { Console.WriteLine("Connected: " + _Client.Connected); } break; case "dispose": _Client.Dispose(); break; case "connect": if (_Client != null && _Client.Connected) { Console.WriteLine("Already connected"); } else { InitializeClient(); } break; case "reconnect": InitializeClient(); break; case "close": _Client.Stop(); break; default: break; } } }
public static async Task <string> SetupNexusLogin(Action <string> updateStatus) { // open a web socket to receive the api key var guid = Guid.NewGuid(); WatsonWsClient client = new WatsonWsClient(new Uri("wss://sso.nexusmods.com")); string api_key = null; object lockobj = new object(); object serverConnectedLockObj = new object(); client.ServerConnected += ServerConnected; client.ServerDisconnected += ServerDisconnected; client.MessageReceived += MessageReceived; client.Start(); void MessageReceived(object sender, MessageReceivedEventArgs args) { Debug.WriteLine("Message from server: " + Encoding.UTF8.GetString(args.Data)); api_key = Encoding.UTF8.GetString(args.Data); lock (lockobj) { Monitor.Pulse(lockobj); } //client. } void ServerConnected(object sender, EventArgs args) { Debug.WriteLine("Server connected"); lock (serverConnectedLockObj) { Monitor.Pulse(serverConnectedLockObj); } } void ServerDisconnected(object sender, EventArgs args) { Debug.WriteLine("Server disconnected"); } //await Task.Delay(1000, cancel); lock (serverConnectedLockObj) { Monitor.Wait(serverConnectedLockObj, new TimeSpan(0, 0, 0, 15)); } if (client.Connected) { await client.SendAsync( Encoding.UTF8.GetBytes("{\"id\": \"" + guid + "\", \"appid\": \"me3tweaks\"}")); //do not localize Thread.Sleep(1000); //?? Utilities.OpenWebpage($"https://www.nexusmods.com/sso?id={guid}&application=me3tweaks"); lock (lockobj) { Monitor.Wait(lockobj, new TimeSpan(0, 0, 1, 0)); } client.Dispose(); } return(api_key); }
static async void ClientTask() { string header = "[Client] "; using (WatsonWsClient client = new WatsonWsClient(hostname, port, false)) { #region Start-Client client.ServerConnected += (s, e) => { Console.WriteLine(header + "connected to " + hostname + ":" + port); }; client.ServerDisconnected += (s, e) => { Console.WriteLine(header + "disconnected from " + hostname + ":" + port); }; client.MessageReceived += (s, e) => { clientStats.AddRecv(e.Data.Count); }; client.Logger = Logger; client.Start(); Console.WriteLine(header + "started"); #endregion #region Wait-for-Messages while (clientStats.MsgRecv < serverSendMessageCount) { Task.Delay(1000).Wait(); Console.WriteLine(header + "waiting for server messages"); } ; Console.WriteLine(header + "server messages received"); #endregion #region Send-Messages Console.WriteLine(header + "sending messages to server"); for (int i = 0; i < clientSendMessageCount; i++) { byte[] msgData = Encoding.UTF8.GetBytes(RandomString(clientMessageLength)); await client.SendAsync(msgData); clientStats.AddSent(msgData.Length); } while (clientStats.MsgRecv < (clientSendMessageCount + serverSendMessageCount)) { Console.WriteLine(header + "waiting for server echo messages"); Task.Delay(1000).Wait(); } Console.WriteLine(header + "finished"); clientIpPort = null; #endregion } }
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()); WatsonWsClient client = new WatsonWsClient(serverIp, serverPort, ssl, true, ServerConnected, ServerDisconnected, MessageReceived, true); bool runForever = true; while (runForever) { Console.Write("Command [? for help]: "); string userInput = Console.ReadLine(); 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(" send send message to server"); Console.WriteLine(" status show if client connected"); Console.WriteLine(" dispose dispose of the connection"); Console.WriteLine(" connect connect to the server if not connected"); Console.WriteLine(" reconnect disconnect if connected, then reconnect"); break; case "q": runForever = false; break; case "cls": Console.Clear(); break; case "send": Console.Write("Data: "); userInput = Console.ReadLine(); if (String.IsNullOrEmpty(userInput)) { break; } client.SendAsync(Encoding.UTF8.GetBytes(userInput)); break; case "status": if (client == null) { Console.WriteLine("Connected: False (null)"); } else { Console.WriteLine("Connected: " + client.IsConnected()); } break; case "dispose": client.Dispose(); break; case "connect": if (client != null && client.IsConnected()) { Console.WriteLine("Already connected"); } else { client = new WatsonWsClient(serverIp, serverPort, ssl, true, ServerConnected, ServerDisconnected, MessageReceived, true); } break; case "reconnect": if (client != null) { client.Dispose(); } client = new WatsonWsClient(serverIp, serverPort, ssl, true, ServerConnected, ServerDisconnected, MessageReceived, true); break; default: break; } } }
private async Task Send(LiveP2000PacketType cmd, JObject data) { data["COM"] = (int)cmd; await _client.SendAsync(JsonConvert.SerializeObject(data)); }