Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        void ITransportListener.OnTransportDataReceived(RealtimeTransportData data)
        {
            var message = Handler.ParseRealtimeData(data);

            Connection.SetConfirmedAlive();
            OnTransportMessageReceived(message).WaitAndUnwrapException();
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 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));
     }
 }
Esempio n. 9
0
 public void OnTransportDataReceived(RealtimeTransportData data)
 {
     _wrappedListener.OnTransportDataReceived(data);
     try
     {
         _afterMessage(_handler.ParseRealtimeData(data));
     }
     catch (Exception ex)
     {
         Logger.Error("Error handling afterMessage helper.", ex);
     }
 }
Esempio n. 10
0
 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);
     }
 }
Esempio n. 11
0
        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);
            }
        }
Esempio n. 12
0
            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);
                }
            }
Esempio n. 13
0
 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);
     }
 }
Esempio n. 14
0
        /// <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());
        }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
        void ITransportListener.OnTransportDataReceived(RealtimeTransportData data)
        {
            var message = Handler.ParseRealtimeData(data);

            ExecuteCommand(ProcessMessageCommand.Create(message).TriggeredBy("ConnectionManager.OnTransportDataReceived()"));
        }
Esempio n. 17
0
 public void Send(RealtimeTransportData data)
 {
     _wrappedTransport.Send(data);
 }
Esempio n. 18
0
 public Result Send(RealtimeTransportData data)
 {
     _sendAction(data);
     SentMessages.Add(data);
     return(Result.Ok());
 }
Esempio n. 19
0
 public void Send(RealtimeTransportData data)
 {
     SendAction(data);
     SentMessages.Add(data);
 }
Esempio n. 20
0
 public void Send(RealtimeTransportData data)
 {
     MessageSent(data.Original);
     _wrappedTransport.Send(data);
 }