Ejemplo n.º 1
0
        private static string ReceiveMessage(IReceivingSocket socket)
        {
            var message = socket.ReceiveFrameString();

            Console.WriteLine("Received: {0}", message);
            return(message);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 public static string ReceiveFrameString([NotNull] this IReceivingSocket socket, out bool more)
 {
     return(socket.ReceiveFrameString(SendReceiveConstants.DefaultEncoding, out more));
 }
Ejemplo n.º 4
0
 public static string ReceiveFrameString([NotNull] this IReceivingSocket socket, [NotNull] Encoding encoding)
 {
     return(socket.ReceiveFrameString(encoding, out bool more));
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Awaits T object as given socket received as JSON.
        /// </summary>
        public static T ReceiveJson <T>(this IReceivingSocket socket)
        {
            var json = socket.ReceiveFrameString();

            return(JsonConvert.DeserializeObject <T>(json));
        }