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 中接收带有消息的“角色”和/或“从属关系”

Sleekxmpp:使用多个自定义节

SleekXMPP 自动接受所有聊天室邀请

SleekXMPP:获取 ClientXMPP JID 资源?

通过 SleekXMPP 发送 facebook 消息

Sleekxmpp 管理节