SleekXMPP:将出席 ['muc']['jid'] 获取到每条消息的消息处理程序
Posted
技术标签:
【中文标题】SleekXMPP:将出席 [\'muc\'][\'jid\'] 获取到每条消息的消息处理程序【英文标题】:SleekXMPP: Getting presence['muc']['jid'] to message handler for each messageSleekXMPP:将出席 ['muc']['jid'] 获取到每条消息的消息处理程序 【发布时间】:2014-05-26 03:08:17 【问题描述】:我正在使用 SleekXMPP 脚本连接到 XMPP 服务器。我的问题是msg['from']
和presence['muc']['jid']
的结果完全不同。
msg['from']
返回:channelname@channels.example.com/nick
msg['mucnick']
返回:nick
presence['muc']['jid']
返回:username@example.com
请注意,在这种情况下,“用户名”和“昵称”是同一用户的两个唯一值。我需要在消息处理程序中为每条消息记录“用户名”值。
有没有办法在消息节处理程序中获得与presence['muc']['jid']
相同的输出?
【问题讨论】:
【参考方案1】:所以我通过将存在登录数据保存到字典来解决这个问题。
def muc_online(self, presence):
handle = str(presence['muc']['jid']).split('@')[0]
nick = str(presence['muc']['nick'])
userdata = nick : handle
然后我将消息节中的昵称与从存在节创建的字典匹配。
【讨论】:
以上是关于SleekXMPP:将出席 ['muc']['jid'] 获取到每条消息的消息处理程序的主要内容,如果未能解决你的问题,请参考以下文章
在 SleekXMPP 中接收带有消息的“角色”和/或“从属关系”