我尝试使用sleekxmpp实现pub-sub。下面是从SleekXMPP下的示例重构发布和订阅的代码。我要做的是从user1/resourceB的会话订阅user1/resourceA(节点的创建者)的节点n1。问题是
当我从user1/resourceB发布到节点n1时,我会从同一个会话获取事件发布,但不会发布到另一个会话。ie从节点创建者user1/resourceA订阅node n1。在这种情况下,我得到了事件。在
def create(self,node_name,config=None):
try :
self['xep_0060'].create_node(self.pubsubserver,node_name,config=config)
except:
logging.error('Could not create node: %s' % node_name)
def publish(self,node_name,payload,_id=None):
print 'entering pubsub publish'
payload_xml = ET.fromstring("<test xmlns='test'>%s</test>" % payload)
ET.dump(payload_xml)
try:
result = self['xep_0060'].publish(self.pubsubserver, node_name,payload=payload_xml)
except:
logging.error('Could not publish to: %s' % node_name)
def subscribe(self,node_name,cb,options=None):
try:
self['xep_0060'].map_node_event(node_name,node_name)
self.add_event_handler('n1_publish',cb)
result = self['xep_0060'].subscribe(jid=self.pubsubserver, node=node_name)
print('Subscribed to node %s' % (node_name))
except:
logging.error('Could not subscribe')
日志:
^{pr2}$我正在为Xmpp使用Openfire服务器
目前没有回答
相关问题 更多 >
编程相关推荐