Esempio n. 1
0
        private byte[] GetMessagesRequestBody(IEnumerable <Message> payloads, ChannelOptions options)
        {
            EncodePayloads(options, payloads);

            if (_protocol == Protocol.MsgPack)
            {
                return(MsgPackHelper.Serialise(payloads));
            }
            return(JsonHelper.Serialize(payloads).GetBytes());
        }
Esempio n. 2
0
        private byte[] GetMessagesRequestBody(IEnumerable <Message> payloads, ChannelOptions options)
        {
            EncodePayloads(new DecodingContext(options), payloads);
#if MSGPACK
            if (_protocol == Protocol.MsgPack)
            {
                return(MsgPackHelper.Serialise(payloads));
            }
#endif
            return(JsonHelper.Serialize(payloads).GetBytes());
        }
Esempio n. 3
0
        public void CanDeserialiseConnectionDetailsMessages()
        {
            var connectionDetails = new ConnectionDetails()
            {
                ClientId = "123", ConnectionStateTtl = TimeSpan.FromSeconds(60)
            };
            var serialized   = MsgPackHelper.Serialise(connectionDetails);
            var deserialized = MsgPackHelper.Deserialise(serialized, typeof(ConnectionDetails));

            deserialized.ShouldBeEquivalentTo(connectionDetails);
        }
            public void CanSerialiseAndDeserializeProtocolMessage()
            {
                var message = new ProtocolMessage(ProtocolMessage.MessageAction.Presence, "boo");

                message.Presence = new[] { new PresenceMessage(PresenceAction.Enter, "123", "my data") };

                var data   = MsgPackHelper.Serialise(message);
                var result = MsgPackHelper.Deserialise(data, typeof(ProtocolMessage)) as ProtocolMessage;

                result.Action.Should().Be(message.Action);
                result.Presence.First().Data.Should().Be(message.Presence[0].Data);
            }
Esempio n. 5
0
        public T ParseResponse <T>(AblyRequest request, AblyResponse response) where T : class
        {
            LogResponse(response);

            var responseText = response.TextResponse;

            if (_protocol == Protocol.MsgPack)
            {
                return((T)MsgPackHelper.Deserialise(response.Body, typeof(T)));
            }
            return(JsonHelper.Deserialize <T>(responseText));
        }
Esempio n. 6
0
    public void FromStream(int iteration)
    {
#pragma warning disable CS0618
        var binaryStream = BinaryHelper.ToStream(_testModel);
#pragma warning restore CS0618
        var dataContractStream   = DataContractHelper.ToStream(_testModel);
        var jilStream            = JilHelper.ToStream(_testModel);
        var messagePackStream    = MessagePackHelper.ToStream(_testModel);
        var msgPackStream        = MsgPackHelper.ToStream(_testModel);
        var newtonsoftJsonStream = NewtonsoftJsonHelper.ToStream(_testModel);
        var protobufStream       = ProtobufHelper.ToStream(_testModel);
        var sharpYamlStream      = SharpYamlHelper.ToStream(_testModel);
        var systemTextJsonStream = SystemTextJsonHelper.ToStream(_testModel);
        var utf8JsonStream       = Utf8JsonHelper.ToStream(_testModel);
        var xmlStream            = XmlHelper.ToStream(_testModel);
        var yamlDotNetStream     = YamlDotNetHelper.ToStream(_testModel);
        var zeroFormatterStream  = ZeroFormatterHelper.ToStream(_testModel);

        Console.WriteLine("FromStream go!");

        Runner.Initialize();

        Console.WriteLine(Runner.Time("BinaryHelper FromStream", iteration,
#pragma warning disable CS0618
                                      () => BinaryHelper.FromStream <TestModel>(binaryStream)));
#pragma warning restore CS0618
        Console.WriteLine(Runner.Time("DataContractHelper FromStream", iteration,
                                      () => DataContractHelper.FromStream <TestModel>(dataContractStream)));
        Console.WriteLine(Runner.Time("JilHelper FromStream", iteration,
                                      () => JilHelper.FromStream <TestModel>(jilStream)));
        Console.WriteLine(Runner.Time("MessagePackHelper FromStream", iteration,
                                      () => MessagePackHelper.FromStream <TestModel>(messagePackStream)));
        Console.WriteLine(Runner.Time("MsgPackHelper FromStream", iteration,
                                      () => MsgPackHelper.FromStream <TestModel>(msgPackStream)));
        Console.WriteLine(Runner.Time("NewtonsoftJsonHelper FromStream", iteration,
                                      () => NewtonsoftJsonHelper.FromStream <TestModel>(newtonsoftJsonStream)));
        Console.WriteLine(Runner.Time("ProtobufHelper FromStream", iteration,
                                      () => ProtobufHelper.FromStream <TestModel>(protobufStream)));
        Console.WriteLine(Runner.Time("SharpYamlHelper FromStream", iteration,
                                      () => SharpYamlHelper.FromStream <TestModel>(sharpYamlStream)));
        Console.WriteLine(Runner.Time("SystemTextJsonHelper FromStream", iteration,
                                      () => SystemTextJsonHelper.FromStream <TestModel>(systemTextJsonStream)));
        Console.WriteLine(Runner.Time("Utf8JsonHelper FromStream", iteration,
                                      () => Utf8JsonHelper.FromStream <TestModel>(utf8JsonStream)));
        Console.WriteLine(Runner.Time("XmlHelper FromStream", iteration,
                                      () => XmlHelper.FromStream <TestModel>(xmlStream)));
        Console.WriteLine(Runner.Time("YamlDotNetHelper FromStream", iteration,
                                      () => YamlDotNetHelper.FromStream <TestModel>(yamlDotNetStream)));
        Console.WriteLine(Runner.Time("ZeroFormatterHelper FromStream", iteration,
                                      () => ZeroFormatterHelper.FromStream <TestModel>(zeroFormatterStream)));

        Console.WriteLine("\r\nFromStream complete!\r\n");
    }
Esempio n. 7
0
        public void CanSerialiseAndDeserialiseStatsCorrectly()
        {
            var bytes =
                "kYqqaW50ZXJ2YWxJZLAyMDE1LTAyLTAzOjE1OjA1pHVuaXSmbWludXRlo2FsbIKjYWxsgqVjb3VudG6kZGF0Yc0q+KhtZXNzYWdlc4KlY291bnRupGRhdGHNKvinaW5ib3VuZIKjYWxsgqNhbGyCpWNvdW50RqRkYXRhzRtYqG1lc3NhZ2VzgqVjb3VudEakZGF0Yc0bWKhyZWFsdGltZYKjYWxsgqVjb3VudEakZGF0Yc0bWKhtZXNzYWdlc4KlY291bnRGpGRhdGHNG1iob3V0Ym91bmSCo2FsbIKjYWxsgqVjb3VudCikZGF0Yc0PoKhtZXNzYWdlc4KlY291bnQopGRhdGHND6CocmVhbHRpbWWCo2FsbIKlY291bnQopGRhdGHND6CobWVzc2FnZXOCpWNvdW50KKRkYXRhzQ+gqXBlcnNpc3RlZIKjYWxsgqVjb3VudBSkZGF0Yc0H0KhwcmVzZW5jZYKlY291bnQUpGRhdGHNB9CrY29ubmVjdGlvbnOCo2FsbIOkcGVhaxSjbWluAKZvcGVuZWQKo3Rsc4KkcGVhaxSmb3BlbmVkCqhjaGFubmVsc4KkcGVhazKmb3BlbmVkHqthcGlSZXF1ZXN0c4Kpc3VjY2VlZGVkMqZmYWlsZWQKrXRva2VuUmVxdWVzdHOCqXN1Y2NlZWRlZDymZmFpbGVkFA=="
                .FromBase64();

            var expected = JsonHelper.Deserialize <List <Stats> >(ResourceHelper.GetResource("MsgPackStatsTest.json"));

            var unpacked = (List <Stats>)MsgPackHelper.Deserialise(bytes, typeof(List <Stats>));

            unpacked.ShouldBeEquivalentTo(expected);
        }
Esempio n. 8
0
        private IEnumerable <Stats> ParseStatsResponse(AblyResponse response)
        {
            var body = response.TextResponse;

#if MSGPACK
            if (_protocol == Protocol.MsgPack)
            {
                return((List <Stats>)MsgPackHelper.Deserialise(response.Body, typeof(List <Stats>)));
            }
#endif
            return(JsonHelper.Deserialize <List <Stats> >(body));
        }
Esempio n. 9
0
        private void LogRequestBody(byte[] requestBody)
        {
            try
            {
                var body = MsgPackHelper.DeserialiseMsgPackObject(requestBody)?.ToString();

                Logger.Debug("RequestBody: " + (body ?? "No body present"));
            }
            catch (Exception ex)
            {
                Logger.Error("Error while logging request body.", ex);
            }
        }
Esempio n. 10
0
        public void CanSerialiseListOfMessagesAndDeserialiseThem()
        {
            var message    = new Message("example", "The quick brown fox jumped over the lazy dog");
            var serialised = MsgPackHelper.Serialise(new List <Message> {
                message
            });

            var result        = MsgPackHelper.Deserialise(serialised, typeof(List <Message>)) as List <Message>;
            var resultMessage = result.First();

            resultMessage.Data.Should().Be(message.Data);
            resultMessage.Name.Should().Be(message.Name);
        }
Esempio n. 11
0
        private void LogRequestBody(byte[] requestBody)
        {
            try
            {
                var body = MsgPackHelper.Deserialise(requestBody, typeof(MessagePackObject)).ToString();

                Logger.Debug("RequestBody: " + body);
            }
            catch (Exception ex)
            {
                Logger.Error("Error while logging request body.", ex);
            }
        }
Esempio n. 12
0
        /// <summary>
        /// 设备解析数据标准接口
        /// </summary>
        /// <param name="strSource">需要解析的数据流</param>
        /// <param name="strCmd">回写数据流</param>
        /// <param name="eventId">事件ID</param>
        /// <param name="isDisconnect">是否断开连接,True:断开  False:不断开</param>
        /// <param name="isMass">是否群发</param>
        /// <param name="strAdvance">扩展参数</param>
        /// <param name="connId">客户端Id</param>
        /// <param name="spreadObject">客户端附加参数</param>
        public void ParseResult(byte[] strSource, ref byte[] strCmd, string eventId, ref bool isDisconnect, ref bool isMass, ref string strAdvance, string connId, ref ConcurrentDictionary <string, SpreadModel> spreadObject, ref bool IsUpdater, ref byte[] 扩展参数)
        {
            try
            {
                IsUpdater = true;
                byte[] len = new byte[4];
                Array.Copy(strSource, 2, len, 0, 4);
                int    lens      = BitConverter.ToInt32(len, 0);
                byte[] realDatas = new byte[lens]; //真实数据大小
                                                   //去掉包头
                Array.Copy(strSource, 11, realDatas, 0, lens);

                FileInformation sendUpdateContents = new FileInformation();
                请求文件信息          updateList         = MsgPackHelper <请求文件信息> .UnPack(realDatas);

                WriteDeviceLog.WriteLog("Log\\" + _DeviceName + "\\解析日志", $@"收到文件ID:{updateList.FileId}", Guid.NewGuid().ToString());
                //sendUpdateContents = FileByteContents.Where(x => x.FileId==updateList).ToList().First();//获取文件id对应的文件
                sendUpdateContents = FileListFileInformation.Where(x => x.FileId == updateList.FileId).ToList().First();
                WriteDeviceLog.WriteLog("Log\\" + _DeviceName + "\\解析日志", $@"whereId:{sendUpdateContents.FileId}", Guid.NewGuid().ToString());
                //包头7字节
                //2048长度来存放文件路径
                //剩下的放文件内容
                byte[] filePath = new byte[2048];
                byte[] basePath = Encoding.Default.GetBytes(sendUpdateContents.BaseFilePath);//文件路径
                Array.Copy(basePath, 0, filePath, 0, basePath.Length);
                扩展参数       = filePath;
                strAdvance = sendUpdateContents.FilePath + "|" + sendUpdateContents.FileId + "|" + updateList.文件读取开始位置 + "|" + updateList.文件读取长度;
                WriteDeviceLog.WriteLog("Log\\" + _DeviceName + "\\解析日志", $@"返回:{strAdvance}", Guid.NewGuid().ToString());
                //strCmd = CopyByte(filePath,FileHelper.GetFileBytes(sendUpdateContents.FilePath));

                //strCmd = ByteHelper.PackByte(strCmd, Command.UpdateDatasList);//封包
                //WriteDeviceLog.WriteLog("Log\\" + _DeviceName + "\\解析日志", $@"发送文件ID:{updateList} 大小:{strCmd.Length}字节", Guid.NewGuid().ToString());
                if (connId != null)
                {
                    if (spreadObject.ContainsKey(connId))
                    {
                        //更新客户端对象扩展信息
                        spreadObject[connId].connId             = connId;
                        spreadObject[connId].DeviceCode         = "AutoUpdaterService";
                        spreadObject[connId].AccessAddress      = strAdvance;
                        spreadObject[connId].LastTimeHandleTime = DateTime.Now;
                        spreadObject[connId].OnlineTime         = TimeHelper.GetTimeLong(spreadObject[connId].FirstTimeConnectTime, DateTime.Now, 1);
                    }
                }
            }
            catch (Exception ex)
            {
                WriteDeviceLog.WriteLog("Log\\" + _DeviceName + "\\解析日志", $@"{strAdvance}         {ex}", eventId);
            }
        }
Esempio n. 13
0
        public IEnumerable <PresenceMessage> ParsePresenceMessages(AblyResponse response, ChannelOptions options)
        {
            if (response.Type == ResponseType.Json)
            {
                var messages = JsonHelper.Deserialize <List <PresenceMessage> >(response.TextResponse);
                ProcessMessages(messages, options);
                return(messages);
            }

            var payloads = MsgPackHelper.Deserialise(response.Body, typeof(List <PresenceMessage>)) as List <PresenceMessage>;

            ProcessMessages(payloads, options);
            return(payloads);
        }
Esempio n. 14
0
        public void CanSerialiseAndDeserialiseTokenDetailsWithEmptyCapability()
        {
            var details = new TokenDetails()
            {
                Token      = "DaC_fA.DzqwNZFHNIl_GpUR6ENpeqewYnzf5LtI2L2RCP0eDSs597_6OXEW5vumSHiBn2pdxP7ge420UNbrqpKaS_W4aWE5oc15OriGL_8hELLGpgDEoNsnUixWIizGvhsnKVFYT",
                KeyName    = "DaC_fA.ChPHsQ",
                Issued     = 1462827574141.FromUnixTimeInMilliseconds(),
                Capability = new Capability(),
            };

            var packed   = MsgPackHelper.Serialise(details);
            var unpacked = (TokenDetails)MsgPackHelper.Deserialise(packed, typeof(TokenDetails));

            unpacked.ShouldBeEquivalentTo(details);
        }
Esempio n. 15
0
        public void DeserializesMessageCorrectly_Count(int count)
        {
            // Arrange
            byte[] expectedMessage = MsgPackHelper.Serialise(new ProtocolMessage()
            {
                Count = count
            }) as byte[];

            // Act
            ProtocolMessage target = MsgPackHelper.Deserialise <ProtocolMessage>(expectedMessage);

            // Assert
            Assert.NotNull(target);
            Assert.Equal(count, target.Count.Value);
        }
Esempio n. 16
0
        public void CanSerialiseAndDeserialiseBase64ByteArray()
        {
            var message = new Message()
            {
                Name = "example", Data = "AAECAwQFBgcICQoLDA0ODw==".FromBase64()
            };
            var serialised = MsgPackHelper.Serialise(new List <Message> {
                message
            });
            var resultMessage = MsgPackHelper.Deserialise(serialised, typeof(List <Message>)) as List <Message>;
            var data          = resultMessage.First().Data as byte[];

            data.Should().BeEquivalentTo(message.Data as byte[]);
            resultMessage.First().Name.Should().Be(message.Name);
        }
        public void DeserializesMessageCorrectly_ConnectionSerial(long connectionSerial)
        {
            // Arrange
            List <byte> expectedMessage = new List <byte>();

            expectedMessage.Add(0x81);
            expectedMessage.AddRange(SerializeString("connectionSerial"));
            expectedMessage.Add(BitConverter.GetBytes(connectionSerial).First());

            // Act
            ProtocolMessage target = MsgPackHelper.Deserialise <ProtocolMessage>(expectedMessage.ToArray());

            // Assert
            target.Should().NotBeNull();
            Assert.Equal <long>(connectionSerial, target.ConnectionSerial.Value);
        }
Esempio n. 18
0
        public void CanDeserialiseTokenResponse()
        {
            var value =
                "gaxhY2Nlc3NfdG9rZW6GpXRva2Vu2YhnNFg2UVEuRHlCYzlMZUdvdy1saWVEcG4zTXRsd09uUEhoN2VtN3MyQ3JTZ1pLM2NUNkRvZUo1dlQxWXRwNDFvaTVWUUtNUkxuSVdDckFadHVOb3F5Q0lvVFphQjFfb1FFX0Utb3c2Y3hKX1EwcFUyZ3lpb2xRNGp1VDM1TjI0Qzgzd0p6aUI5p2tleU5hbWWtZzRYNlFRLnV0ekdsZ6Zpc3N1ZWTOVMEP1qdleHBpcmVzzlTBHeaqY2FwYWJpbGl0eYGhKpGhKqhjbGllbnRJZKMxMjM=";

            var decodedMessagePack = MsgPackHelper.Deserialise(value.FromBase64(), typeof(MessagePackObject)).ToString();

            var response = JsonHelper.Deserialize <TokenResponse>(decodedMessagePack);

            response.AccessToken.Should().NotBeNull();
            response.AccessToken.Capability.ToJson().Should().Be("{\"*\":[\"*\"]}");
            response.AccessToken.ClientId.Should().Be("123");
            response.AccessToken.Token.Should().Be("g4X6QQ.DyBc9LeGow-lieDpn3MtlwOnPHh7em7s2CrSgZK3cT6DoeJ5vT1Ytp41oi5VQKMRLnIWCrAZtuNoqyCIoTZaB1_oQE_E-ow6cxJ_Q0pU2gyiolQ4juT35N24C83wJziB9");
            response.AccessToken.Issued.Should().Be(((long)1421938646).FromUnixTimeInMilliseconds());
            response.AccessToken.Expires.Should().Be(((long)1421942246).FromUnixTimeInMilliseconds());
        }
Esempio n. 19
0
        public void DeserializesMessageCorrectly_Action(ProtocolMessage.MessageAction action)
        {
            // Arrange
            List <byte> expectedMessage = new List <byte>();

            expectedMessage.Add(0x81);
            expectedMessage.AddRange(SerializeString("action"));
            expectedMessage.Add((byte)action);

            // Act
            ProtocolMessage target = MsgPackHelper.Deserialise <ProtocolMessage>(expectedMessage.ToArray());

            // Assert
            Assert.NotNull(target);
            Assert.Equal(action, target.Action);
        }
Esempio n. 20
0
        public void DeserializesMessageCorrectly_ConnectionKey(string connectionKey)
        {
            // Arrange
            List <byte> expectedMessage = new List <byte>();

            expectedMessage.Add(0x81);
            expectedMessage.AddRange(SerializeString("connectionKey"));
            expectedMessage.AddRange(SerializeString(connectionKey));

            // Act
            ProtocolMessage target = MsgPackHelper.Deserialise <ProtocolMessage>(expectedMessage.ToArray());

            // Assert
            Assert.NotNull(target);
            Assert.Equal <string>(connectionKey, target.ConnectionKey);
        }
        public void DeserializesMessageCorrectly_ConnectionId(string connectionId)
        {
            // Arrange
            List <byte> expectedMessage = new List <byte>();

            expectedMessage.Add(0x81);
            expectedMessage.AddRange(SerializeString("connectionId"));
            expectedMessage.AddRange(SerializeString(connectionId));

            // Act
            ProtocolMessage target = MsgPackHelper.Deserialise <ProtocolMessage>(expectedMessage.ToArray());

            // Assert
            target.Should().NotBeNull();
            Assert.Equal(connectionId, target.ConnectionId);
        }
Esempio n. 22
0
        /// <summary>
        /// 设备初始化规则
        /// </summary>
        /// <param name="strDevice"></param>
        /// <param name="dbType"></param>
        public void GetRules(string strDevice, string dbType, ref string param1)
        {
            _DeviceID   = strDevice;
            _DeviceName = strDevice;

            //加载客户端缓存文件
            var fileHelper = new FileHelper();

            //测试手动获取文件位置
            FileListFileInformation = fileHelper.GetAllFiles(new System.IO.DirectoryInfo($@"{_baseDir}\UpdateTempFile"));
            //FileByteContents = FileHelper.FileByteContentsList;
            datas = MsgPackHelper <List <FileInformation> > .Pack(FileListFileInformation);

            //datas = SerializableHelper.ObjectToBytes(FileListFileInformation);
            WriteDeviceLog.WriteLog("Log\\" + _DeviceName + "\\解析日志", $@"加载内存:文件列表{FileListFileInformation.Count}个", Guid.NewGuid().ToString());
        }
Esempio n. 23
0
        public IEnumerable <PresenceMessage> ParsePresenceMessages(AblyResponse response, ChannelOptions options)
        {
            if (response.Type == ResponseType.Json)
            {
                var messages = JsonHelper.Deserialize <List <PresenceMessage> >(response.TextResponse);
                ProcessMessages(messages, options);
                return(messages);
            }
#if MSGPACK
            var payloads = MsgPackHelper.Deserialise(response.Body, typeof(List <PresenceMessage>)) as List <PresenceMessage>;
            ProcessMessages(payloads, options);
            return(payloads);
#else
            throw new AblyException($"Response of type '{response.Type}' is invalid because MsgPack support was not enabled for this build.");
#endif
        }
Esempio n. 24
0
        private void LogRequestBody(byte[] requestBody)
        {
            try
            {
#if MSGPACK
                var body = MsgPackHelper.DeserialiseMsgPackObject(requestBody)?.ToString();
                Logger.Debug("RequestBody: " + (body ?? "No body present"));
#else
                Logger.Debug("RequestBody: MsgPack disabled, cannot log request");
#endif
            }
            catch (Exception ex)
            {
                Logger.Error("Error while logging request body.", ex);
            }
        }
Esempio n. 25
0
        public void DeserializesMessageCorrectly_MsgSerial(long serial)
        {
            // Arrange
            List <byte> expectedMessage = new List <byte>();

            expectedMessage.Add(0x81);
            expectedMessage.AddRange(SerializeString("msgSerial"));
            expectedMessage.Add(BitConverter.GetBytes(serial).First());

            // Act
            ProtocolMessage target = MsgPackHelper.Deserialise <ProtocolMessage>(expectedMessage.ToArray());

            // Assert
            Assert.NotNull(target);
            Assert.Equal <long>(serial, target.MsgSerial);
        }
Esempio n. 26
0
        public void DeserializesMessageCorrectly_Id(string id)
        {
            // Arrange
            List <byte> expectedMessage = new List <byte>();

            expectedMessage.Add(0x81);
            expectedMessage.AddRange(SerializeString("id"));
            expectedMessage.AddRange(SerializeString(id));

            // Act
            ProtocolMessage target = MsgPackHelper.Deserialise <ProtocolMessage>(expectedMessage.ToArray());

            // Assert
            Assert.NotNull(target);
            Assert.Equal <string>(id, target.Id);
        }
Esempio n. 27
0
 private void LogResponse(AblyResponse response)
 {
     Logger.Info("Protocol:" + _protocol);
     try
     {
         var responseBody = response.TextResponse;
         if (_protocol == Protocol.MsgPack && response.Body != null)
         {
             responseBody = MsgPackHelper.DeSerialise(response.Body, typeof(MessagePackObject)).ToString();
         }
         Logger.Debug("Response: " + responseBody);
     }
     catch (Exception ex)
     {
         Logger.Error("Error while logging response body.", ex);
     }
 }
Esempio n. 28
0
        public void DeserializesMessageCorrectly_Flags(int flags)
        {
            // Arrange

            List <byte> expectedMessage = new List <byte>();

            expectedMessage.Add(0x81);
            expectedMessage.AddRange(SerializeString("flags"));
            expectedMessage.Add((byte)flags);

            // Act
            ProtocolMessage target = MsgPackHelper.Deserialise <ProtocolMessage>(expectedMessage.ToArray());

            // Assert
            Assert.NotNull(target);
            Assert.Equal <byte>((byte)flags, (byte)target.Flags);
        }
Esempio n. 29
0
        private void socket_DataReceived(object sender, DataReceivedEventArgs e)
        {
            if (Logger.IsDebug)
            {
                try
                {
                    var message = MsgPackHelper.Deserialise(e.Data, typeof(MessagePackObject)).ToString();
                    Logger.Debug("Websocket data message received. Raw: " + message);
                }
                catch (Exception)
                {
                    Logger.Debug("Error parsing message as MsgPack.");
                }
            }

            Listener?.OnTransportDataReceived(new RealtimeTransportData(e.Data));
        }
Esempio n. 30
0
        public void WithMsgPackEncoding_CanSerialiseAndDeserializeProtocolMessage()
        {
#if MSGPACK
            if (!Defaults.MsgPackEnabled)
            {
                return;
            }

            var message = new ProtocolMessage(ProtocolMessage.MessageAction.Presence, "boo");
            message.Presence = new[] { new PresenceMessage(PresenceAction.Enter, "123", "my data") };

            var data   = MsgPackHelper.Serialise(message);
            var result = MsgPackHelper.Deserialise(data, typeof(ProtocolMessage)) as ProtocolMessage;

            result.Action.Should().Be(message.Action);
            result.Presence.First().Data.Should().Be(message.Presence[0].Data);
#endif
        }