private async void RunReceiveLoop() { var buffer = new ArraySegment <byte> (new byte [4096]); while (!_cancellation?.IsCancellationRequested ?? true) { try { var r = await cws.ReceiveAsync(buffer, _cancellation.Token); if (r.MessageType == WebSocketMessageType.Close) { await UpdateMessageArea($"Received {r.MessageType}: Close Status: [{cws.CloseStatus} Description: [{cws.CloseStatusDescription}]"); } else { await UpdateMessageArea($"Received {r.MessageType}: [{Encoding.UTF8.GetString (buffer.Array, buffer.Offset, r.Count)}]"); } } catch (Exception e) { if (!_cancellation.IsCancellationRequested) { await UpdateMessageArea($"Failed to receive: {e.Message}"); break; } } } }
public async override Task <int> Recive(byte[] Buffer) { var Array = new ArraySegment <byte>(Buffer); var Result = (await Socket.ReceiveAsync(Array, CancellationToken.None)).Count; var ReciverArray = Array.Array; ReciverArray.CopyTo(Buffer, 0); return(Result); }
static async void TestWS() { Console.WriteLine("ws call...."); ClientWebSocket cws = new ClientWebSocket(); await cws.ConnectAsync(new Uri("ws://127.0.0.1:9301/ws"), CancellationToken.None); await cws.SendAsync(new ArraySegment <byte> (Encoding.UTF8.GetBytes("{test}")), WebSocketMessageType.Text, true, CancellationToken.None); var buffer = new ArraySegment <byte> (new byte [4096]); var result = await cws.ReceiveAsync(buffer, CancellationToken.None); Console.WriteLine("....ws call -> " + Encoding.UTF8.GetString(buffer)); }
public async static void sendrecv(string json) { Console.WriteLine("ws call.... passing" + json); ClientWebSocket cws = new ClientWebSocket(); { var buffer = new ArraySegment <byte> (new byte [4096]); await cws.ConnectAsync(new Uri("ws://127.0.0.1:9301/ws"), CancellationToken.None); await cws.SendAsync(new ArraySegment <byte> (Encoding.UTF8.GetBytes(json)), WebSocketMessageType.Text, true, CancellationToken.None); await cws.ReceiveAsync(buffer, CancellationToken.None); _result = Encoding.UTF8.GetString(buffer); } Console.WriteLine("....ws call"); }