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