//todo: don't serialize in each socket, serialize in parent (socketProvider) public void SendState() { UTF8Encoding encoding = new UTF8Encoding(false); //todo: handle null DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); MemoryStream mem = new MemoryStream(); ser.WriteObject(mem, socketProvider.State); //todo: don't convert string to bytes and back webSocket.SendMessage(encoding.GetString(mem.ToArray())); }
private void StartMessages(IWebSocket webSocket) { // we want to ping every 2 seconds new Timer(state => { var buffer = new OkBuffer(); buffer.WriteString("Ping!", Charset.DefaultCharset()); webSocket.SendPing(buffer); }, null, TimeSpan.Zero, TimeSpan.FromSeconds(2)); // we want to send a message every 5 seconds new Timer(state => { var body = RequestBody.Create(WebSocket.Text, "Hello World!"); webSocket.SendMessage(body); }, null, TimeSpan.Zero, TimeSpan.FromSeconds(3)); }