コード例 #1
0
ファイル: MultipartMessaging.cs プロジェクト: 90xukan/ZeroMQ
        public void Start()
        {
            subThread = new BackgroundWorker();
            subThread.DoWork += new DoWorkEventHandler(subThread_DoWork);
            subThread.RunWorkerAsync();

            using (var ctx = ZmqContext.Create())
            {
                using(var socket = ctx.CreateSocket(SocketType.PUB))
                {
                    socket.Bind("tcp://127.0.0.1:5000");
                    while (true)
                    {
                        Thread.Sleep(1000);
                        // Create a ZmqMessage containing 3 frames
                        ZmqMessage zmqMessage = new ZmqMessage();
                        zmqMessage.Append(new Frame(Encoding.UTF8.GetBytes("My Frame 01")));
                        zmqMessage.Append(new Frame(Encoding.UTF8.GetBytes("My Frame 02")));
                        zmqMessage.Append(new Frame(Encoding.UTF8.GetBytes("My Frame 03")));
                        Console.WriteLine("PUB; publishing: ");
                        foreach (var msg in zmqMessage)
                            Console.WriteLine("\t" + Encoding.UTF8.GetString(msg));
                        socket.SendMessage(zmqMessage);
                    }
                }
            }
        }
コード例 #2
0
        public void Start()
        {
            subThread         = new BackgroundWorker();
            subThread.DoWork += new DoWorkEventHandler(subThread_DoWork);
            subThread.RunWorkerAsync();

            using (var ctx = ZmqContext.Create())
            {
                using (var socket = ctx.CreateSocket(SocketType.PUB))
                {
                    socket.Bind("tcp://127.0.0.1:5000");
                    while (true)
                    {
                        Thread.Sleep(1000);
                        // Create a ZmqMessage containing 3 frames
                        ZmqMessage zmqMessage = new ZmqMessage();
                        zmqMessage.Append(new Frame(Encoding.UTF8.GetBytes("My Frame 01")));
                        zmqMessage.Append(new Frame(Encoding.UTF8.GetBytes("My Frame 02")));
                        zmqMessage.Append(new Frame(Encoding.UTF8.GetBytes("My Frame 03")));
                        Console.WriteLine("PUB; publishing: ");
                        foreach (var msg in zmqMessage)
                        {
                            Console.WriteLine("\t" + Encoding.UTF8.GetString(msg));
                        }
                        socket.SendMessage(zmqMessage);
                    }
                }
            }
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: yonglehou/Daytona
 public static void SendMessage(byte[] address, byte[] message, ZmqSocket socket)
 {
     ZmqMessage zmqMessage = new ZmqMessage();
     zmqMessage.Append(new Frame(address));
     zmqMessage.Append(new Frame(message));
     socket.SendMessage(zmqMessage);
 }
コード例 #4
0
        public void Start()
        {
            subThread = new BackgroundWorker();
            subThread.DoWork += new DoWorkEventHandler(subThread_DoWork);
            subThread.RunWorkerAsync();

            using (var ctx = ZmqContext.Create())
            {
                using(var socket = ctx.CreateSocket(SocketType.PUB))
                {
                    socket.Bind("tcp://127.0.0.1:5000");
                    while (true)
                    {
                        Thread.Sleep(1000);
                        var shoppingBasket = new ShoppingBasket()
                        {
                            StoreName = "Fruits City",
                            ShoppingItems = new List<ShoppingItem>() {
                                new ShoppingItem() { Description="Orange", Weight=0.5f},
                                new ShoppingItem() { Description="Apple", Weight=1.4f},
                                new ShoppingItem() { Description="Banana", Weight=0.75f}}
                        };
                        ZmqMessage zmqMessage = new ZmqMessage();
                        zmqMessage.Append(
                                   new Frame(Encoding.UTF8.GetBytes("Shopping Basket")));
                        zmqMessage.Append(
                                   JsonFrame.Serialize<ShoppingBasket>(shoppingBasket));
                        Console.WriteLine("PUB; publishing: ");
                        Console.WriteLine("\t" + Encoding.UTF8.GetString(zmqMessage[0]));
                        Console.WriteLine("\t" + Encoding.UTF8.GetString(zmqMessage[1]));
                        socket.SendMessage(zmqMessage);
                    }
                }
            }
        }
コード例 #5
0
ファイル: Actor.cs プロジェクト: nka1/Daytona
        public void SendMessage(byte[] address, byte[] message, ZmqSocket socket)
        {
            ZmqMessage zmqMessage = new ZmqMessage();

            zmqMessage.Append(new Frame(address));
            zmqMessage.Append(new Frame(message));
            socket.SendMessage(zmqMessage);
        }
コード例 #6
0
ファイル: Context.cs プロジェクト: nka1/Daytona
        private static void SendMessage(string address, string message, ISerializer serializer, ZmqSocket socket)
        {
            ZmqMessage zmqMessage = new ZmqMessage();

            zmqMessage.Append(new Frame(serializer.Encoding.GetBytes(address)));
            zmqMessage.Append(new Frame(serializer.Encoding.GetBytes(message)));
            socket.SendMessage(zmqMessage);
        }
コード例 #7
0
        public void Send(string Head, object Msg)
        {
            var message = new ZmqMessage();

            message.Append(new Frame(Encoding.ASCII.GetBytes(Head)));
            message.Append(new Frame(ToArray(Msg, 819200)));
            Socket.SendMessage(message);
        }
コード例 #8
0
ファイル: Helper.cs プロジェクト: nka1/Daytona
        public static void SendOneMessageOfType <T>(string Address, T message, ISerializer serializer, ZmqSocket publisher)
        {
            ZmqMessage zmqMessage = new ZmqMessage();

            zmqMessage.Append(new Frame(serializer.GetBuffer(Address)));
            zmqMessage.Append(new Frame(serializer.GetBuffer(message)));
            publisher.SendMessage(zmqMessage);
        }
コード例 #9
0
        public void Send(string Head, string Msg)
        {
            var message = new ZmqMessage();

            message.Append(new Frame(Encoding.ASCII.GetBytes(Head)));
            message.Append(new Frame(Encoding.ASCII.GetBytes(Msg)));
            Socket.SendMessage(message);
        }
コード例 #10
0
 private static void SendOneSimpleMessage(string address, string message, ZmqSocket publisher)
 {
     {
         ZmqMessage zmqMessage = new ZmqMessage();
         zmqMessage.Append(new Frame(Encoding.Unicode.GetBytes(address)));
         zmqMessage.Append(new Frame(Encoding.Unicode.GetBytes(message)));
         publisher.SendMessage(zmqMessage);
     }
 }
コード例 #11
0
ファイル: Actor.cs プロジェクト: nka1/Daytona
        public void SendOneMessageOfType <T>(string address, T message, ISerializer serializer, ZmqSocket socket) where T : IPayload
        {
            ZmqMessage zmqMessage = new ZmqMessage();

            zmqMessage.Append(new Frame(serializer.GetBuffer(address)));
            zmqMessage.Append(new Frame(serializer.GetBuffer(message)));
            ////var replySignal = this.sendControlChannel.Receive(Pipe.ControlChannelEncoding);
            socket.SendMessage(zmqMessage);
            ////this.sendControlChannel.Send("Just sent message to " + address + " Message is: " + message, Pipe.ControlChannelEncoding);
            ////replySignal = this.sendControlChannel.Receive(Pipe.ControlChannelEncoding);
            ////Actor.Writeline(replySignal);
        }
コード例 #12
0
        public void Send(object message, string topic = null)
        {
            var typeName = MessageTypeRegistry.GetTypeName(message.GetType());
            var data = _serializer.Serialize(message);

            if (topic == null)
                topic = typeName;

            var msg = new ZmqMessage();
            msg.Append(new Frame(ZmqContext.DefaultEncoding.GetBytes(topic)));
            msg.Append(new Frame(ZmqContext.DefaultEncoding.GetBytes(typeName)));
            msg.Append(new Frame(data));

            _messages.OnNext(msg);
        }
コード例 #13
0
ファイル: Program.cs プロジェクト: maslakov/zmqtests
        public static void SendRequest(Int32 request,ref ZmqSocket socket)
        {
            //ZmqSocket socket;
            try
            {
                //socket = CreateSocket();

                var message = new ZmqMessage();
                message.Append(Encoding.UTF8.GetBytes(String.Format(" Hello {0}.", request)));

                socket.SendMessage(message);

                // TODO: add receive timeout as param
                var dataResult = socket.ReceiveMessage();

                Console.WriteLine(Encoding.UTF8.GetString(dataResult[0]));
                Console.WriteLine(Encoding.UTF8.GetString(dataResult[1]));

            }
            catch (Exception ex)
            {
                socket.Close();
                socket = CreateSocket();
                Console.WriteLine(ex.ToString());
            }
        }
コード例 #14
0
ファイル: Helper.cs プロジェクト: nka1/Daytona
        //public void SendOneMessageOfType<T>(string Address, T message, ISerializer serializer, ZmqSocket publisher)
        //{
        //    ZmqMessage zmqMessage = new ZmqMessage();
        //    zmqMessage.Append(new Frame(Encoding.Unicode.GetBytes(Address)));
        //    zmqMessage.Append(new Frame(serializer.GetBuffer(message)));
        //    publisher.SendMessage(zmqMessage);
        //}


        public static T ReceiveMessage <T>(ZmqSocket Subscriber, out ZmqMessage zmqMessage, out string address)
        {
            T          result  = default(T);
            ZmqMessage zmqOut  = new ZmqMessage();
            bool       hasMore = true;
            string     message = "";

            address = string.Empty;
            int i = 0;

            while (hasMore)
            {
                Frame frame = Subscriber.ReceiveFrame();
                if (i == 0)
                {
                    address = Encoding.Unicode.GetString(frame.Buffer);
                }
                if (i == 1)
                {
                    result = (T)JsonConvert.DeserializeObject <T>(Encoding.Unicode.GetString(frame.Buffer));
                }

                i++;
                zmqOut.Append(new Frame(Encoding.Unicode.GetBytes(message)));
                hasMore = Subscriber.ReceiveMore;
            }

            zmqMessage = zmqOut;
            return(result);
        }
コード例 #15
0
        public void Start()
        {
            subThread         = new BackgroundWorker();
            subThread.DoWork += new DoWorkEventHandler(subThread_DoWork);
            subThread.RunWorkerAsync();

            using (var ctx = ZmqContext.Create())
            {
                using (var socket = ctx.CreateSocket(SocketType.PUB))
                {
                    socket.Bind("tcp://127.0.0.1:5000");
                    while (true)
                    {
                        Thread.Sleep(1000);
                        var shoppingBasket = new ShoppingBasket()
                        {
                            StoreName     = "Fruits City",
                            ShoppingItems = new List <ShoppingItem>()
                            {
                                new ShoppingItem()
                                {
                                    Description = "Orange", Weight = 0.5f
                                },
                                new ShoppingItem()
                                {
                                    Description = "Apple", Weight = 1.4f
                                },
                                new ShoppingItem()
                                {
                                    Description = "Banana", Weight = 0.75f
                                }
                            }
                        };
                        ZmqMessage zmqMessage = new ZmqMessage();
                        zmqMessage.Append(
                            new Frame(Encoding.UTF8.GetBytes("Shopping Basket")));
                        zmqMessage.Append(
                            JsonFrame.Serialize <ShoppingBasket>(shoppingBasket));
                        Console.WriteLine("PUB; publishing: ");
                        Console.WriteLine("\t" + Encoding.UTF8.GetString(zmqMessage[0]));
                        Console.WriteLine("\t" + Encoding.UTF8.GetString(zmqMessage[1]));
                        socket.SendMessage(zmqMessage);
                    }
                }
            }
        }
コード例 #16
0
ファイル: Program.cs プロジェクト: nka1/Daytona
        private static void RunWeatherWithFrames(ZmqContext context, string Address, string message)
        {
            string input = string.Empty;

            using (ZmqSocket publisher = context.CreateSocket(SocketType.PUB))
            {
                publisher.Connect("tcp://localhost:5556");
                while (input != "exit")
                {
                    interrupted = false;
                    Address     = "11111 ";
                    message     = "Hi johnny was here";

                    var randomizer = new Random(DateTime.Now.Millisecond);
                    Console.Write("sending");
                    int i = 0;

                    while (!interrupted)
                    {
                        ++i;
                        //  Get values that will fool the boss
                        int zipcode          = randomizer.Next(0, 100000);
                        int temperature      = randomizer.Next(-80, 135);
                        int relativeHumidity = randomizer.Next(10, 60);

                        string update = "xx " + temperature.ToString() + " " + relativeHumidity.ToString();

                        if (i > 1000000)
                        {
                            Console.Write(".");
                            i = 0;
                        }

                        ZmqMessage zmqMessage = new ZmqMessage();
                        zmqMessage.Append(new Frame(Encoding.Unicode.GetBytes(zipcode.ToString())));
                        zmqMessage.Append(new Frame(Encoding.Unicode.GetBytes(update)));

                        publisher.SendMessage(zmqMessage);
                    }
                    Console.WriteLine("=>");
                    input = Console.ReadLine();
                }
            }
        }
コード例 #17
0
ファイル: Program.cs プロジェクト: miaoweiwei/MQ
        static void publisher_SendReady(object sender, SocketEventArgs e)
        {
            Thread.Sleep(2000);
            Console.WriteLine("发布者:发送--P发布订阅模式UB");
            var zmqMessage = new ZmqMessage();

            zmqMessage.Append(Encoding.UTF8.GetBytes("发布者发布数据……"));
            e.Socket.SendMessage(zmqMessage);
            //throw new NotImplementedException();
        }
コード例 #18
0
        protected override void ExecutionMethod()
        {
            try
            {
                TRequest request = _requests.Take(Token);

                var envelope = new Frame(Encoding.UTF8.GetBytes(request.Topic));
                var body     = new Frame(request.ToByteArray());

                ZmqMessage msq = new ZmqMessage();
                msq.Append(envelope);
                msq.Append(body);

                _zmqSocket.SendMessage(msq);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #19
0
        public void Request(string Head, string Msg)
        {
            if (!isCanRequest)
            {
                m_Queue.Enqueue(Head + "|" + Msg);
                return;
            }
            //while (!isCanRequest)
            //{
            //    //or (int i = 0; i < 5; i++)
            //    //{
            //    //    if (isCanRequest) { break; }
            //        ////Thread.Sleep(1);
            //    //}
            //    return;
            //}

            m_isCanRequest = false;
            var message = new ZmqMessage();

            message.Append(new Frame(Encoding.ASCII.GetBytes(Head)));
            message.Append(new Frame(Encoding.ASCII.GetBytes(Msg)));
            Socket.SendMessage(message);

            ThreadPool.QueueUserWorkItem((e) =>
            {
                ZmqMessage msg = Socket.ReceiveMessage(new TimeSpan(0, 0, 3));
                if (msg == null || msg.FrameCount == 0)
                {
                    return;
                }

                m_isCanRequest = true;
                if (OnREPReceived != null)
                {
                    OnREPReceived(Encoding.ASCII.GetString(msg[0]), msg.FrameCount > 1 ? FromArray(msg[1]) : null);
                }
            });
        }
コード例 #20
0
ファイル: Program.cs プロジェクト: nka1/Daytona
        static void pubSocket_SendReady(object sender, SocketEventArgs e)
        {
            var zmqMessage = new ZmqMessage();

            if (nbSubscribersConnected < 2)
            {
                zmqMessage.Append(Encoding.UTF8.GetBytes("Sync"));
                zmqMessage.Append(Encoding.UTF8.GetBytes(Pipe.PubSubControlFrontAddressClient));
                Thread.Sleep(200);
                Console.WriteLine("Publishing: Sync");
            }
            else
            {
                zmqMessage.Append(Encoding.UTF8.GetBytes("Data"));
                var data = "MYDATA"; //BuildDataToPublish();
                if (!string.IsNullOrEmpty(data))
                {
                    zmqMessage.Append(Encoding.UTF8.GetBytes(data));
                    Thread.Sleep(200);
                    Console.WriteLine("Publishing (Data): " + data);
                }
            }
            e.Socket.SendMessage(zmqMessage);
        }
コード例 #21
0
        static void pubSocket_SendReady(object sender, SocketEventArgs e)
        {
            var zmqMessage = new ZmqMessage();

            if (nbSubscribersConnected < options.nbExpectedSubscribers)
            {
                zmqMessage.Append(Encoding.UTF8.GetBytes("Sync"));
                zmqMessage.Append(Encoding.UTF8.GetBytes(options.repEndpoint));
                Thread.Sleep(options.delay);
                Console.WriteLine("Publishing: Sync");
            }
            else
            {
                zmqMessage.Append(Encoding.UTF8.GetBytes("Data"));
                var data = BuildDataToPublish();
                if (!string.IsNullOrEmpty(data))
                {
                    zmqMessage.Append(Encoding.UTF8.GetBytes(data));
                    Thread.Sleep(options.delay);
                    Console.WriteLine("Publishing (Data): " + data);
                }
            }
            e.Socket.SendMessage(zmqMessage);
        }
コード例 #22
0
ファイル: Actor.cs プロジェクト: nka1/Daytona
        private T ReceiveMessage <T>(ZmqSocket subscriber, out ZmqMessage zmqMessage, out string address, out bool stopSignal, out byte[] messageAsBytes, ISerializer serializer)
        {
            stopSignal = false;
            T          result  = default(T);
            ZmqMessage zmqOut  = new ZmqMessage();
            bool       hasMore = true;

            address        = string.Empty;
            messageAsBytes = null;
            int i = 0;

            while (hasMore)
            {
                Frame frame = subscriber.ReceiveFrame();
                if (i == 0)
                {
                    address = serializer.GetString(frame.Buffer);
                }

                if (i == 1)
                {
                    messageAsBytes = frame.Buffer;
                    string stopMessage = serializer.GetString(messageAsBytes);
                    this.WriteLineToMonitor("Message: " + stopMessage);
                    if (stopMessage.ToLower() == "stop")
                    {
                        Writeline("received stop");
                        this.SendMessage(Pipe.ControlChannelEncoding.GetBytes(Pipe.SubscriberCountAddress), Pipe.ControlChannelEncoding.GetBytes("SHUTTINGDOWN"), this.OutputChannel);
                        stopSignal = true;
                    }
                    else
                    {
                        result = serializer.Deserializer <T>(stopMessage);
                    }
                }

                i++;
                zmqOut.Append(new Frame(frame.Buffer));
                hasMore = subscriber.ReceiveMore;
            }

            zmqMessage = zmqOut;
            return(result);
        }
コード例 #23
0
ファイル: Program.cs プロジェクト: maslakov/zmqtests
        public static void SendRequestAsync(Int32 request)
        {
            ZmqSocket socket;
            try
            {
                socket = CreateSocket();

                Func<ZmqSocket, Int32, Object> sendData = (s, rq) =>
                {
                    var message = new ZmqMessage();
                    message.Append(Encoding.UTF8.GetBytes(String.Format(" Hello {0}.", rq)));

                    s.Connect(routerEndpoint);
                    s.SendMessage(message);

                    // TODO: add receive timeout as param
                    return s.ReceiveMessage();
                };

                sendData.BeginInvoke(socket, request, new AsyncCallback((ar) =>
                {
                    AsyncResult result = (AsyncResult)ar;
                    var caller = result.AsyncDelegate;
                    var dataResult = (ZmqMessage)((Func<ZmqSocket, Int32, Object>)caller).EndInvoke(ar);
                    var rq = ((AsyncState)ar.AsyncState).Request;

                    Console.WriteLine(Encoding.UTF8.GetString(dataResult[0]));
                    Console.WriteLine(Encoding.UTF8.GetString(dataResult[1]));

                    ((AsyncState)ar.AsyncState).Socket.Close();

                }), new AsyncState(socket, request));

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
コード例 #24
0
ファイル: Program.cs プロジェクト: miaoweiwei/MQ
        const int SyncPub_SubscribersExpected = 1;      // We wait for 3 subscribers
        static void Main(string[] args)
        {
            using (var context = ZmqContext.Create())
            {
                using (var publisher = context.CreateSocket(SocketType.PUB))
                    using (var syncservice = context.CreateSocket(SocketType.REP))
                    {
                        publisher.SendHighWatermark = 1100000;
                        publisher.Bind("tcp://*:5561");

                        syncservice.Bind("tcp://*:5562");
                        int subscribers = SyncPub_SubscribersExpected;
                        do
                        {
                            Console.WriteLine("Waiting for {0} subscriber" + (subscribers > 1 ? "s" : string.Empty) + "...", subscribers);

                            // - wait for synchronization request
                            syncservice.ReceiveFrame();

                            // - send synchronization reply
                            syncservice.Send(new Frame(Encoding.UTF8.GetBytes(@"success")));
                        }while (--subscribers > 0);

                        // Now broadcast exactly 20 updates followed by END
                        Console.WriteLine("Broadcasting messages:");

                        ZmqMessage ZmqMessage = new ZmqMessage();
                        for (int i = 0; i < 20; ++i)
                        {
                            Console.WriteLine("Sending {0}...", i);
                            ZmqMessage.Append(new Frame(Encoding.UTF8.GetBytes(i.ToString())));
                            //publisher.Send(new Frame(Encoding.UTF8.GetBytes(i.ToString())));
                        }
                        publisher.SendMessage(ZmqMessage);
                        publisher.Send(new Frame(Encoding.UTF8.GetBytes(@"END")));
                    }
            }
        }
コード例 #25
0
ファイル: Helper.cs プロジェクト: nka1/Daytona
        public static ZmqMessage ReceiveMessage(ZmqSocket Subscriber)
        {
            var    zmqMessage = new ZmqMessage();
            bool   hasMore    = true;
            int    i          = 0;
            string address    = string.Empty;

            while (hasMore)
            {
                Frame frame = Subscriber.ReceiveFrame();
                if (frame.Buffer.Count() > 0)
                {
                    if (i == 0)
                    {
                        address = Encoding.Unicode.GetString(frame.Buffer);
                    }
                    if (i == 1)
                    {
                        string stop = Encoding.Unicode.GetString(frame.Buffer);
                        //result = serializer.Deserializer<T>(stop);
                    }
                    i++;
                    zmqMessage.Append(new Frame(frame.Buffer));
                    hasMore = Subscriber.ReceiveMore;
                    //message = Subscriber.Receive(Encoding.Unicode,);

                    //zmqMessage.Append(new Frame(Encoding.Unicode.GetBytes(message)));
                    //hasMore = Subscriber.ReceiveMore;
                }
                else
                {
                    zmqMessage = null;
                }
            }

            return(zmqMessage);
        }
コード例 #26
0
ファイル: WorkerRole.cs プロジェクト: eudaimos/WaterBucket
 private static void SendUpdateMessage(ISolutionStrategy strategy, ProblemUpdateType updateType, ZmqSocket socket, object data, IFormatter formatter = null)
 {
     formatter = formatter ?? new BinaryFormatter();
     ZmqMessage message = new ZmqMessage();
     message.Append(Encoding.UTF8.GetBytes(strategy.Signature));
     message.AppendEmptyFrame();
     message.Append(new byte[1] { (byte)updateType });
     message.AppendEmptyFrame();
     message.Append(new byte[1] { 0x7f });
     using (MemoryStream ms = new MemoryStream())
     {
         formatter.Serialize(ms, data);
         // TODO: Find more efficient way to write byte[] since MemoryStream.ToArray performs a copy
         //       whereas MemoryStream.GetBuffer() returns all allocated bytes whether they are empty or not
         message.Append(ms.ToArray());
     }
     socket.SendMessage(message);
 }
コード例 #27
0
ファイル: WorkerRole.cs プロジェクト: eudaimos/WaterBucket
 private static void SendUpdateMessage(ISolutionStrategy strategy, ProblemUpdateType updateType, ZmqSocket socket, IBinaryConvertible data)
 {
     ZmqMessage message = new ZmqMessage();
     message.Append(Encoding.UTF8.GetBytes(strategy.Signature));
     message.AppendEmptyFrame();
     message.Append(new byte[1] { (byte)updateType });
     message.AppendEmptyFrame();
     message.Append(new byte[1] { 0x7f });
     message.Append(data.GetBytes());
     socket.SendMessage(message);
 }
コード例 #28
0
ファイル: Program.cs プロジェクト: 90xukan/ZeroMQ
 static void pubSocket_SendReady(object sender, SocketEventArgs e)
 {
     var zmqMessage = new ZmqMessage();
     if (nbSubscribersConnected < options.nbExpectedSubscribers)
     {
         zmqMessage.Append(Encoding.UTF8.GetBytes("Sync"));
         zmqMessage.Append(Encoding.UTF8.GetBytes(options.repEndpoint));
         Thread.Sleep(options.delay);
         Console.WriteLine("Publishing: Sync");
     }
     else
     {
         zmqMessage.Append(Encoding.UTF8.GetBytes("Data"));
         var data = BuildDataToPublish();
         if (!string.IsNullOrEmpty(data))
         {
             zmqMessage.Append(Encoding.UTF8.GetBytes(data));
             Thread.Sleep(options.delay);
             Console.WriteLine("Publishing (Data): " + data);
         }
     }
     e.Socket.SendMessage(zmqMessage);
 }
コード例 #29
0
ファイル: Program.cs プロジェクト: yonglehou/Daytona
        private static void RunWeatherWithFrames(ZmqContext context, string Address, string message)
        {
            string input = string.Empty;
            using (ZmqSocket publisher = context.CreateSocket(SocketType.PUB))
            {
                publisher.Connect("tcp://localhost:5556");
                while (input != "exit")
                {
                    interrupted = false;
                    Address = "11111 ";
                    message = "Hi johnny was here";

                    var randomizer = new Random(DateTime.Now.Millisecond);
                    Console.Write("sending");
                    int i = 0;

                    while (!interrupted)
                    {
                        ++i;
                        //  Get values that will fool the boss
                        int zipcode = randomizer.Next(0, 100000);
                        int temperature = randomizer.Next(-80, 135);
                        int relativeHumidity = randomizer.Next(10, 60);

                        string update = "xx " + temperature.ToString() + " " + relativeHumidity.ToString();

                        if (i > 1000000)
                        {
                            Console.Write(".");
                            i = 0;
                        }

                        ZmqMessage zmqMessage = new ZmqMessage();
                        zmqMessage.Append(new Frame(Encoding.Unicode.GetBytes(zipcode.ToString())));
                        zmqMessage.Append(new Frame(Encoding.Unicode.GetBytes(update)));

                        publisher.SendMessage(zmqMessage);
                    }
                    Console.WriteLine("=>");
                    input = Console.ReadLine();
                }
            }
        }
コード例 #30
0
ファイル: Program.cs プロジェクト: maslakov/zmqtests
        private static void worker_ReceiveReady(Object sender, SocketEventArgs e)
        {
            var responseMsg = new ZmqMessage();
            ZmqMessage message = e.Socket.ReceiveMessage(responseMsg);

            Console.WriteLine("[worker] Received {0} bytes {1} frames", message.TotalSize, message.FrameCount);

            responseMsg.Append(Encoding.UTF8.GetBytes(". Received!"));

            //Thread.Sleep(300);

            Console.WriteLine("[worker-responce] Sent {0} bytes {1} frames", responseMsg.TotalSize, responseMsg.FrameCount);

            e.Socket.SendMessage(responseMsg);
        }
コード例 #31
0
ファイル: Program.cs プロジェクト: maslakov/zmqtests
 private static void router_SendReady(Object sender, SocketEventArgs e)
 {
     var Msg = new ZmqMessage();
     Msg.Append(Encoding.UTF8.GetBytes(String.Format(" Hi {0}.", mesageNum)));
     mesageNum++;
     e.Socket.SendMessage(Msg);
 }
コード例 #32
0
ファイル: Program.cs プロジェクト: yonglehou/Daytona
 static void pubSocket_SendReady(object sender, SocketEventArgs e)
 {
     var zmqMessage = new ZmqMessage();
     if (nbSubscribersConnected < 2)
     {
         zmqMessage.Append(Encoding.UTF8.GetBytes("Sync"));
         zmqMessage.Append(Encoding.UTF8.GetBytes(Pipe.PubSubControlFrontAddressClient));
         Thread.Sleep(200);
         Console.WriteLine("Publishing: Sync");
     }
     else
     {
         zmqMessage.Append(Encoding.UTF8.GetBytes("Data"));
         var data = "MYDATA"; //BuildDataToPublish();
         if (!string.IsNullOrEmpty(data))
         {
             zmqMessage.Append(Encoding.UTF8.GetBytes(data));
             Thread.Sleep(200);
             Console.WriteLine("Publishing (Data): " + data);
         }
     }
     e.Socket.SendMessage(zmqMessage);
 }