xmpp 与 python: xmpp.protocol.InvalidFrom: (u'invalid-from', '')

Posted

技术标签:

【中文标题】xmpp 与 python: xmpp.protocol.InvalidFrom: (u\'invalid-from\', \'\')【英文标题】:xmpp with python: xmpp.protocol.InvalidFrom: (u'invalid-from', '')xmpp 与 python: xmpp.protocol.InvalidFrom: (u'invalid-from', '') 【发布时间】:2009-08-12 09:24:56 【问题描述】:
cl = xmpp.Client('myserver.com')
if not cl.connect(server=('mysefver.com',5223)):
    raise IOError('cannot connect to server')
cl.RegisterHandler('message',messageHandler)
cl.auth('myemail@myserver.com', 'mypassword', 'statusbot')
cl.sendInitPresence()

msgtext = formatToDo(cal, 'text')
message = xmpp.Message('anotheremail@myserver.com',  msgtext) 
message.setAttr('type', 'chat')
cl.send(message)

当我尝试运行它时收到以下错误消息:

xmpp.protocol.InvalidFrom: (u'invalid-from', '')

为什么会这样:(

【问题讨论】:

【参考方案1】:

来自XMPP协议specification:

如果'from'的值 地址与接收方表示的主机名不匹配 打开 TCP 连接(或任何经过验证的域)时的服务器 其中,例如接收服务器的经过验证的子域 主机名或接收服务器托管的另一个经过验证的域), 那么权威服务器必须生成一个流 错误条件并终止 XML 流和底层 TCP 连接。

这基本上意味着,如果 xmpp-server 无法识别发件人,它将回复此消息。 XMPP提供注册机制:xmpp.features.register

【讨论】:

以上是关于xmpp 与 python: xmpp.protocol.InvalidFrom: (u'invalid-from', '')的主要内容,如果未能解决你的问题,请参考以下文章

Python 中的 Google Talk/XMPP 音频支持

使用 Python XMPP 的 GCM 通知

XMPP 发送消息不起作用

python-xmpp 收到消息

来自 xtalk.py 的 Python-XMPP 回溯

Python 和 EJABBERD/XMPP [关闭]