protected void WebSocketOnMessageReceived(object sender, MessageReceivedEventArgs messageReceivedEventArgs) { OnRawMessageReceived(messageReceivedEventArgs.Message); RealtimeChannelResponse response; RealtimeMessage message; if ((response = RealtimeChannelResponse.Deserialize(messageReceivedEventArgs.Message)) != null) { IRealtimeChannel realtimeChannel = null; lock (this) { if (Channels.ContainsKey(response.ChannelId)) { realtimeChannel = Channels[response.ChannelId]; } } realtimeChannel?.OnChannelResponse(response); OnChannelUpdated(realtimeChannel); } else if ((message = RealtimeMessage.Deserialize(messageReceivedEventArgs.Message)) != null) { OnMessageReceived(message); } }