public static string ReceiveFrameBytesSTR(this IReceivingSocket socket) { var resultBytes = socket.ReceiveFrameBytes(); if (resultBytes == null || resultBytes.Length == 0) { return(string.Empty); } return(Encoding.UTF8.GetString(resultBytes)); }
public static Message ReceiveMessage(this IReceivingSocket socket, Kernel kernel = null) { var message = new Message(); while (true) { var bytes = socket.ReceiveFrameBytes(); if (bytes.SequenceEqual(Delimiter)) { break; } message.Identities.Add(bytes); } message.Signature = socket.ReceiveFrameString(); var header = socket.ReceiveFrameString(); var parentHeader = socket.ReceiveFrameString(); var metadata = socket.ReceiveFrameString(); var content = socket.ReceiveFrameString(); if (kernel != null) { var sig = kernel.SignMessage(header, parentHeader, metadata, content); if (sig != message.Signature) { Console.WriteLine("! WARNING: Invalid message signature, ignoring the message"); message.Signature = null; } } message.Header = JsonConvert.DeserializeObject <Header>(header); message.ParentHeader = JsonConvert.DeserializeObject <Header>(parentHeader); message.MetaData = JObject.Parse(metadata); message.Content = JObject.Parse(content); // Console.WriteLine($"> [{message.Header.MessageType}] {metadata} {content}"); return(message); }
public static byte[] ReceiveFrameBytes([NotNull] this IReceivingSocket socket) { bool more; return(socket.ReceiveFrameBytes(out more)); }