def setup(self, cfg): BasePlugin.setup(self, cfg) self.factory = MZMQFactory(plugin=self) self.factory.plugin = self self.pub_endpoint_uri = cfg.get("pub_endpoint", "tcp://*:9901") self.pub_endpoint = ZmqEndpoint("bind", self.pub_endpoint_uri) self.sub_endpoint_uri = cfg.get("sub_endpoint", "tcp://*:9901") self.sub_endpoint = ZmqEndpoint("connect", self.sub_endpoint_uri) self.pub = ZmqPubConnection(self.factory, self.pub_endpoint) self.sub = ZmqSubConnection(self.factory, self.sub_endpoint) self.sub.subscribe("") self.sub.gotMessage = self.on_message self.subscribe(self.process_event)
#!/usr/bin/env python import json import pprint import sys from twisted.internet import reactor, defer from txZMQ import ZmqEndpoint, ZmqFactory, ZmqPubConnection, ZmqSubConnection zf = ZmqFactory() pe = ZmqEndpoint("bind", "tcp://*:9901") se = ZmqEndpoint("connect", "tcp://10.0.2.40:9901") pc = ZmqPubConnection(zf, pe) sc = ZmqSubConnection(zf, se) sc.subscribe("") # ("scheduler.scheduler001.new_interval") pc.publish("F*****G WORK") sys.exit(0) def matches(tags, query): if query is None: query = list() tags = set(tags.split(" ")) query = set(query) return query.issubset(tags) def on_message(detail, tags):