Python 2.7 を搭載した Ubuntu 12.10 があり、python-xmpp ライブラリ (xmpppy) を使用しています。xsend.pyというサンプル スクリプトを使用して、XMPP サーバー (ejabberd) に接続し、IM をユーザーに送信できます。
テスト スクリプトxtalk.pyを使用しようとすると、xmpp に再度接続して認証し、メッセージを送信できます。このスクリプトを使用すると、メッセージの送信先から返信を受け取ることもできます。
プログラムを実行すると、次のようになります。
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 を実行してユーザーにメッセージを送信できますが、ユーザーが (ピギン クライアントを使用して) 応答の最初の文字を入力するとすぐに、python プログラムがそのトレースバックでクラッシュします。
基本的に、このスクリプトでメッセージを送信できますが、受信できません。ピギンクライアントでキーストロークを押してチャットに返信するまでエラーが発生しないため、ユーザーが入力していることをこのプログラムに通知するXMPPに関係があると思われます。「こんにちは!」と返信したい場合 次に、ピギン クライアントで h を押すとすぐに、サーバー上の python プログラムがクラッシュします。メッセージを送信することさえできません。
もう 1 つの非常に興味深い点: Android で Xabber チャット クライアントを使用している場合、このスクリプトを使用して双方向チャットを行うことができます。このスクリプトとデスクトップのPiginクライアントとの双方向チャットはできません...