{"id":1164,"date":"2018-07-14T22:34:06","date_gmt":"2018-07-14T21:34:06","guid":{"rendered":"https:\/\/solidt.eu\/site\/?p=1164"},"modified":"2018-07-14T22:34:06","modified_gmt":"2018-07-14T21:34:06","slug":"zeromq-zmq-publisher-subscriber","status":"publish","type":"post","link":"https:\/\/solidt.eu\/site\/zeromq-zmq-publisher-subscriber\/","title":{"rendered":"ZeroMQ (zmq) Publisher-Subscriber"},"content":{"rendered":"<pre class=\"lang:js decode:true\" title=\"publisher.js\">const zmq = require('zeromq');\r\nconst address = 'tcp:\/\/127.0.0.1:12345';\r\n\r\nlet publisher = zmq.socket('pub');\r\n\r\npublisher.bind(address, (err) =&gt; {\r\n    if (err) {\r\n        console.log(err);\r\n    } else {\r\n        console.log('Listening on 5563\u2026');\r\n    }\r\n});\r\n\r\nsetInterval(() =&gt; {\r\n    let n = Math.ceil(Math.random() * 50) - 10;\r\n    publisher.send([\"weather\", n]);\r\n    publisher.send([\"money\", n * 50]);\r\n}, 20);\r\n<\/pre>\n<pre class=\"lang:js decode:true  \" title=\"subscriber.js\">const zmq = require('zeromq');\r\nconst address = 'tcp:\/\/127.0.0.1:12345';\r\n\r\nvar subscriber = zmq.socket('sub');\r\n\r\nsubscriber.on('message', (...args) =&gt; {\r\n    console.log('received', args.map((a) =&gt; a.toString()));\r\n});\r\n\r\nsubscriber.connect(address);\r\nsubscriber.subscribe('weather');\r\nsubscriber.subscribe('money');<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>const zmq = require(&#8216;zeromq&#8217;); const address = &#8216;tcp:\/\/127.0.0.1:12345&#8217;; let publisher = zmq.socket(&#8216;pub&#8217;); publisher.bind(address, (err) =&gt; { if (err) { console.log(err); } else { console.log(&#8216;Listening on 5563\u2026&#8217;); } }); setInterval(() =&gt; { let n = Math.ceil(Math.random() * 50) &#8211; 10; publisher.send([&#8220;weather&#8221;, n]); publisher.send([&#8220;money&#8221;, n * 50]); }, 20); const zmq = require(&#8216;zeromq&#8217;); const address = &#8216;tcp:\/\/127.0.0.1:12345&#8217;; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-1164","post","type-post","status-publish","format-standard","hentry","category-javascript"],"_links":{"self":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/1164","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/comments?post=1164"}],"version-history":[{"count":1,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/1164\/revisions"}],"predecessor-version":[{"id":1165,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/1164\/revisions\/1165"}],"wp:attachment":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/media?parent=1164"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/categories?post=1164"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/tags?post=1164"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}