private void OnWebsocketMessageReceived(string message) { try { // Deserialize message base class to determine message type. MessageBase request = JsonConvert.DeserializeObject <MessageBase>(message); if (request == null) { LogMessage("OnWebsocketMessageReceived: Unable to deserialize base message"); return; } LogMessage("OnWebsocketMessageReceived: Message type: " + request.MessageType); switch (request.MessageType) { case MessageType.AddSubscriberRequest: AddSubscriberRequestMessage addSubscriberRequestMessage = JsonConvert.DeserializeObject <AddSubscriberRequestMessage>(message); LogMessage("Subscriber name: " + addSubscriberRequestMessage.Name); AddSubscriberResponseMessage response = new AddSubscriberResponseMessage { SubscriberId = addSubscriberRequestMessage.SubscriberId, SubscriptionId = Guid.NewGuid(), Success = true }; // Send AddSubscriberResponse back to sender string jsonText = JsonConvert.SerializeObject(response); byte[] msg = Encoding.UTF8.GetBytes(jsonText); webSocket.SendAsync(new ArraySegment <byte>(msg), WebSocketMessageType.Text, true, CancellationToken.None).Wait(5000); break; default: LogMessage("Unknown message type"); break; } } catch (Exception ex) { LogMessage("OnWebsocketMessageReceived exception: " + ex.Message); } }
private void ButtonAddSubscriber_Click(object sender, RoutedEventArgs e) { if (websocket.State != WebSocketState.Open) { return; } AddSubscriberRequestMessage request = new AddSubscriberRequestMessage { SubscriberId = 100, Name = "John Doe", Topic = "Weather reports" }; string jsonText = JsonConvert.SerializeObject(request); byte[] msg = Encoding.UTF8.GetBytes(jsonText); websocket.SendAsync(new ArraySegment <byte>(msg), WebSocketMessageType.Text, true, CancellationToken.None).Wait(5000); }