public ProtocolMessage ParseRealtimeData(RealtimeTransportData data) { ProtocolMessage protocolMessage; if (_protocol == Protocol.MsgPack) { protocolMessage = (ProtocolMessage)MsgPackHelper.Deserialise(data.Data, typeof(ProtocolMessage)); } else { protocolMessage = JsonHelper.Deserialize <ProtocolMessage>(data.Text); } //Populate presence and message object timestamps if (protocolMessage != null) { foreach (var presenceMessage in protocolMessage.Presence) { presenceMessage.Timestamp = protocolMessage.Timestamp; } foreach (var message in protocolMessage.Messages) { message.Timestamp = protocolMessage.Timestamp; } } return(protocolMessage); }
private void HandleMessageReceived(RealtimeTransportData data) { if (data.IsBinary) { if (Logger.IsDebug) { try { #if MSGPACK var message = MsgPackHelper.DeserialiseMsgPackObject(data.Data).ToString(); Logger.Debug("Websocket data message received. Raw: " + message); #endif } catch (Exception) { Logger.Debug("Error parsing message as MsgPack."); } } Listener?.OnTransportDataReceived(data); } else { if (Logger.IsDebug) { Logger.Debug("Websocket message received. Raw: " + data.Text); } Listener?.OnTransportDataReceived(data); } }
public ProtocolMessage ParseRealtimeData(RealtimeTransportData data) { ProtocolMessage protocolMessage; // ReSharper disable once ConditionIsAlwaysTrueOrFalse if (IsMsgPack() && Config.MsgPackEnabled) { #if MSGPACK protocolMessage = (ProtocolMessage)MsgPackHelper.Deserialise(data.Data, typeof(ProtocolMessage)); #endif } else { protocolMessage = JsonHelper.Deserialize <ProtocolMessage>(data.Text); } if (protocolMessage != null) { foreach (var presenceMessage in protocolMessage.Presence) { presenceMessage.Timestamp = protocolMessage.Timestamp; } foreach (var message in protocolMessage.Messages) { message.Timestamp = protocolMessage.Timestamp; } } return(protocolMessage); }
void ITransportListener.OnTransportDataReceived(RealtimeTransportData data) { var message = Handler.ParseRealtimeData(data); Connection.SetConfirmedAlive(); OnTransportMessageReceived(message).WaitAndUnwrapException(); }
public RealtimeTransportData GetTransportData(ProtocolMessage protocolMessage) { RealtimeTransportData data; // ReSharper disable once ConditionIsAlwaysTrueOrFalse if (IsMsgPack() && Config.MsgPackEnabled) { #if MSGPACK var bytes = MsgPackHelper.Serialise(protocolMessage); data = new RealtimeTransportData(bytes) { Original = protocolMessage }; #endif } else { var text = JsonHelper.Serialize(protocolMessage); data = new RealtimeTransportData(text) { Original = protocolMessage }; } return(data); }
void ITransportListener.OnTransportDataReceived(RealtimeTransportData data) { ExecuteOnManagerThread(() => { var message = Handler.ParseRealtimeData(data); return(OnTransportMessageReceived(message)); }); }
public void Send(RealtimeTransportData data) { if (BinaryProtocol) { _socket.Send(data.Data, 0, data.Length); } else { _socket.Send(data.Text); } }
public void Send(RealtimeTransportData data) { if (BinaryProtocol) { Task.Run(() => _socket.SendData(data.Data)); } else { Task.Run(() => _socket.SendText(data.Text)); } }
public void OnTransportDataReceived(RealtimeTransportData data) { _wrappedListener.OnTransportDataReceived(data); try { _afterMessage(_handler.ParseRealtimeData(data)); } catch (Exception ex) { Logger.Error("Error handling afterMessage helper.", ex); } }
public void Send(RealtimeTransportData data) { if (Logger.IsDebug) { Logger.Debug($"Transport state ({_socket?.State}): Sending message. Action: {data.Original.Action} - " + data.Explain()); } if (BinaryProtocol) { _socket.Send(data.Data, 0, data.Length); } else { _socket.Send(data.Text); } }
public void Send(RealtimeTransportData data) { if (BinaryProtocol) { _socket?.SendData(data.Data); } else { if (Logger.IsDebug) { Logger.Debug("Sending Text: " + data.Text); } _socket?.SendText(data.Text); } }
public void OnTransportDataReceived(RealtimeTransportData data) { ProtocolMessage msg = null; try { msg = _handler.ParseRealtimeData(data); ProtocolMessagesReceived.Add(msg); if (_wrappedTransport.BlockReceiveActions.Contains(msg.Action)) { return; } if (_wrappedTransport.BeforeDataProcessed != null) { _wrappedTransport.BeforeDataProcessed?.Invoke(msg); data = _handler.GetTransportData(msg); } } catch (Exception ex) { DefaultLogger.Error("Error handling beforeMessage helper.", ex); } try { _wrappedListener?.OnTransportDataReceived(data); } catch (Exception e) { DefaultLogger.Error("Test transport factory on receive error ", e); } try { _wrappedTransport.AfterDataReceived?.Invoke(msg); } catch (Exception ex) { DefaultLogger.Error("Error handling afterMessage helper.", ex); } }
public void OnTransportDataReceived(RealtimeTransportData data) { try { _wrappedListener.OnTransportDataReceived(data); } catch (Exception e) { DefaultLogger.Error("Test transport factor on receive error ", e); } try { _afterMessage(_handler.ParseRealtimeData(data)); } catch (Exception ex) { DefaultLogger.Error("Error handling afterMessage helper.", ex); } }
/// <inheritdoc/> public Result Send(RealtimeTransportData data) { if (_socket is null) { return(Result.Fail($"Cannot send message. Socket instance is null. Transport state is: {State}")); } if (BinaryProtocol) { _socket?.SendData(data.Data); } else { if (Logger.IsDebug) { Logger.Debug("Sending Text: " + data.Text); } _socket?.SendText(data.Text); } return(Result.Ok()); }
public RealtimeTransportData GetTransportData(ProtocolMessage protocolMessage) { RealtimeTransportData data; if (_protocol == Protocol.MsgPack) { var bytes = MsgPackHelper.Serialise(protocolMessage); data = new RealtimeTransportData(bytes) { Original = protocolMessage }; } else { var text = JsonHelper.Serialize(protocolMessage); data = new RealtimeTransportData(text) { Original = protocolMessage }; } return(data); }
void ITransportListener.OnTransportDataReceived(RealtimeTransportData data) { var message = Handler.ParseRealtimeData(data); ExecuteCommand(ProcessMessageCommand.Create(message).TriggeredBy("ConnectionManager.OnTransportDataReceived()")); }
public void Send(RealtimeTransportData data) { _wrappedTransport.Send(data); }
public Result Send(RealtimeTransportData data) { _sendAction(data); SentMessages.Add(data); return(Result.Ok()); }
public void Send(RealtimeTransportData data) { SendAction(data); SentMessages.Add(data); }
public void Send(RealtimeTransportData data) { MessageSent(data.Original); _wrappedTransport.Send(data); }