static async Task SendAsync(WebSocket ws, Message m) { using (MemoryStream mem = new MemoryStream()) using (StreamWriter sw = new StreamWriter(mem)) { await sw.WriteAsync(JsonConvert.SerializeObject(m)); await sw.FlushAsync(); var seg = new ArraySegment<byte>(mem.GetBuffer(), 0, (int)mem.Length); await ws.SendAsync(seg, WebSocketMessageType.Text, true, CancellationToken.None); } }
async Task DoUnhandled(Session session, Message m) { Error error = new Error("Unhandled message type: " + m.Type); await session.SendAsync(error.Serialize()); }