コード例 #1
0
        public void connect()
        {
            //string endpoint = "tcp://127.0.0.1:5561";
            //using (NetMQContext context = NetMQContext.Create())
            //using (NetMQ.Sockets.SubscriberSocket responder = context.CreateSubscriberSocket())
            //{
            //    responder.Connect(endpoint);
            //    responder.Subscribe("hello");
            //    while (true)
            //    {
            //        string msg = responder.ReceiveString();

            //        Console.WriteLine(msg);
            //        Thread.Sleep(500);
            //    }
            //}

            string name     = AppDomain.CurrentDomain.FriendlyName;
            string endpoint = ConfigurationManager.AppSettings["pubAdress"];

            //using (context = NetMQContext.Create())
            using (responder = new NetMQ.Sockets.SubscriberSocket())
            {
                responder.Connect(endpoint);
                responder.Subscribe(this.target);
                while (true)
                {
                    NetMQMessage msgList = responder.ReceiveMultipartMessage();
                    if (msgList.Count() > 1)
                    {
                        var             body = msgList[1];
                        byte[]          data = body.ToByteArray();
                        MemoryStream    ms   = new MemoryStream(data);
                        BinaryFormatter bf   = new BinaryFormatter();
                        CmdMessage      cmd  = (CmdMessage)bf.Deserialize(ms);
                        ms.Close();
                        if (this.onReceive != null)
                        {
                            this.onReceive(cmd);
                        }
                    }
                }
            }
        }