Esempio n. 1
0
        public override void Write(byte[] data)
        {
            base.Write(data);

            JsonDecoder decoder = new JsonDecoder();

            ResonanceDecodingInformation info = new ResonanceDecodingInformation();

            decoder.Decode(data, info);

            if (info.Type == ResonanceTranscodingInformationType.ContinuousRequest ||
                info.Type == ResonanceTranscodingInformationType.Message ||
                info.Type == ResonanceTranscodingInformationType.MessageSync ||
                info.Type == ResonanceTranscodingInformationType.Request ||
                info.Type == ResonanceTranscodingInformationType.Response)
            {
                Logger.LogInformation($"Write: {_loggedInClients[GetConnectionId()].Credentials.Name} => {_loggedInClients[GetOtherSideConnectionId()].Credentials.Name} => {{@Message}}", info.Message);
            }
        }
Esempio n. 2
0
        public void Default_Header_Transcoding()
        {
            ResonanceEncodingInformation encodeInfo = new ResonanceEncodingInformation();

            encodeInfo.Completed    = true;
            encodeInfo.ErrorMessage = "Test";
            encodeInfo.HasError     = true;
            encodeInfo.IsCompressed = true;
            encodeInfo.Token        = Guid.NewGuid().ToString();
            encodeInfo.Transcoding  = "test";
            encodeInfo.RPCSignature = RPCSignature.FromString("Method:Service.MyMethod");
            encodeInfo.Type         = ResonanceTranscodingInformationType.Response;

            ResonanceDefaultHeaderTranscoder transcoder = new ResonanceDefaultHeaderTranscoder();

            using (MemoryStream mWrite = new MemoryStream())
            {
                using (BinaryWriter writer = new BinaryWriter(mWrite))
                {
                    transcoder.Encode(writer, encodeInfo);
                }

                ResonanceDecodingInformation decodeInfo = new ResonanceDecodingInformation();

                using (MemoryStream mRead = new MemoryStream(mWrite.ToArray()))
                {
                    using (BinaryReader reader = new BinaryReader(mRead))
                    {
                        transcoder.Decode(reader, decodeInfo);
                    }
                }

                Assert.AreEqual(encodeInfo.Completed, decodeInfo.Completed);
                Assert.AreEqual(encodeInfo.ErrorMessage, decodeInfo.ErrorMessage);
                Assert.AreEqual(encodeInfo.HasError, decodeInfo.HasError);
                Assert.AreEqual(encodeInfo.IsCompressed, decodeInfo.IsCompressed);
                Assert.AreEqual(encodeInfo.Token, decodeInfo.Token);
                Assert.AreEqual(encodeInfo.Transcoding, decodeInfo.Transcoding);
                Assert.AreEqual(encodeInfo.Type, decodeInfo.Type);
                Assert.AreEqual(encodeInfo.RPCSignature.ToString(), "Method:Service.MyMethod");
            }
        }
Esempio n. 3
0
 /// <summary>
 /// Called when the transcoding information is first available.
 /// </summary>
 /// <param name="info">The transcoding information.</param>
 protected override void OnTranscodingInformationDecoded(ResonanceDecodingInformation info)
 {
     base.OnTranscodingInformationDecoded(info);
     _decoder = ResonanceTranscodingFactory.Default.GetDecoder(info.Transcoding);
 }