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); } }
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"); } }
/// <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); }