我有带有 Python 2.7 的 Ubuntu 12.10,并且正在使用 python-xmpp 库 (xmpppy) 我能够连接到我的 XMPP 服务器 (ejabberd) 并向用户发送即时消息,方法是使用名为xsend.py的示例脚本
当我尝试使用测试脚本xtalk.py时,我能够再次连接到 xmpp、auth 并发送消息。该脚本还应该允许我收到我正在向其发送消息的人的回复。
当我运行程序时,会发生这种情况:
root@domU:/home/ubuntu# python xtalk.py user@xmpp.mydomain.com
An error occurred while looking up _xmpp-client._tcp.xmpp.mydomain.com
connected with tls
authenticated using sasl
I am sending this message from xtalk.py to user@xmpp.mydomain.com
My message was recieved, and I'm sending another one now
That was recieved to. Now I'm going to reply to myself.
Traceback (most recent call last):
File "xtalk.py", line 77, in <module>
cl.Process(1)
File "/usr/lib/python2.7/dist-packages/xmpp/dispatcher.py", line 303, in dispatch
handler['func'](session,stanza)
File "xtalk.py", line 18, in xmpp_message
sys.stdout.write(event.getBody() + '\n')
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
我不确定从哪里开始解决此问题。谁能给我小费?
具体来说,我可以运行 xtalk.py 并向用户发送消息,但是一旦用户键入响应的第一个字母(使用 pigin 客户端),python 程序就会因该回溯而崩溃。
基本上,我可以使用此脚本发送消息,但无法接收回消息。我认为原因可能与 XMPP 通知该程序用户正在输入有关,因为直到我在 pigin 客户端中按下键以回复聊天时才会发生错误。如果我想回复“你好!” 然后,只要我在 pigin 客户端上按 h,服务器上的 python 程序就会崩溃。我什至来不及发送消息。
另一个非常有趣的观点:如果我在我的 android 上使用 Xabber 聊天客户端,我可以使用此脚本进行两种方式的聊天。我只是不能用这个脚本和桌面 Pigin 客户端两种方式聊天......