Python 圆滑的xmpp';读取xml流时出错';已连接<--&燃气轮机;断开回路

Python 圆滑的xmpp';读取xml流时出错';已连接<--&燃气轮机;断开回路,python,xml,django,xmpp,google-talk,Python,Xml,Django,Xmpp,Google Talk,我在发展部 我只修改了一点EchoBot,下面是更改/添加的代码,否则我从源代码中包含的示例中获取了其余的代码: self.add_event_handler("session_start", self.start) self.add_event_handler("changed_status", self.change) ... def start(self, event): self.send_presence(pshow='xa' , ppriority="0") sel

我在发展部

我只修改了一点EchoBot,下面是更改/添加的代码,否则我从源代码中包含的示例中获取了其余的代码:

self.add_event_handler("session_start", self.start)
self.add_event_handler("changed_status", self.change)
...

def start(self, event):
    self.send_presence(pshow='xa' , ppriority="0")
    self.get_roster()

def change(self, event):
    #This is django stuff, essentially what I am trying to do is log info from changed_status events
    c = Change(jid = event['from'], timestamp = timezone.now(), new_availability = event['type'], new_priority = event['priority'])
    c.save()
我有一段时间很难让它启动,然后在重新启动后,它工作了大约一个小时,然后似乎不知从哪里发生了下面同样的错误。接下来发生的事情基本上是一个连接循环,然后是另一个XML流错误,导致断开连接等等

ERROR    Error reading from XML stream.
DEBUG    reconnecting...
DEBUG    SEND (IMMED): 
INFO     Waiting for  from server
DEBUG     ==== TRANSITION connected -> disconnected
DEBUG    connecting...
DEBUG    Waiting 1.84108932156 seconds before connecting.
DEBUG    Connecting to xx.xxx.xxx.xxx:xxxx
DEBUG     ==== TRANSITION disconnected -> connected
DEBUG    SEND (IMMED): 
DEBUG    RECV: X-GOOGLE-TOKENX-OAUTH2
DEBUG    SEND (IMMED): 
DEBUG    RECV: 
DEBUG    Starting TLS
INFO     Negotiating TLS
INFO     Using SSL version: 3
如果我试图从
echo_client.py
运行
EchoBot
,则发生此错误后,我将无法连接到xx.xxx.xxx.xxx:xxxx

如果我再次运行我的
EchoBot
版本,它将开始正常工作,但我担心会再次出现其他错误

可能相关:
*连接到Google Talk
*还通过我的浏览器登录到gmail
*也在我的Android上登录了Google talk


我的问题是如何解决此错误,或者如何捕获并正确处理此错误?

这是一次性问题,还是持续发生?“从XML流读取错误”错误意味着连接丢失,尤其是对于GTalk,因为它不倾向于发送关闭的流元素,而只是终止连接。您是否在“错误读取”日志之前收到流错误元素?乍一看,如果这是一个一次性问题,那么在到达GTalk服务器时似乎只是一个网络问题。还有,你所说的“在开始这段时间有困难”是什么意思?在这之前还有其他连接问题吗?@LanceStout谢谢你的评论,我暂时不会出现在我的日志前,但是你可以期待今晚的另一篇评论,对你的问题有更详细的回答。现在我可以回答你的最后一个问题,我所说的“在开始阶段遇到问题…”是指我会每隔几分钟尝试启动我的EchoBot,并出现与上述类似(如果不是相同的)错误。在重新启动和一些等待之后,它最终工作了。一个潜在的问题可能是您没有安装dnspython?没有dnspython的默认echo_client.py如果不手动修改connect()调用以使用“talk.google.com”作为连接主机而不是“gmail.com”,则无法连接到GTalk。我没有安装它,这可能是我尝试默认echo_client.py的问题,因为我没有修改它。当我访问这些日志时,在适当修改connect()调用后,我还会尝试使用默认客户端,看看是否有任何问题。@LanceStout,我现在在日志前面。我只是试着启动我的Echobot,但也犯了同样的错误。我还尝试了echo_client.py,添加了使用GoogleTalk的行,得到了相同/类似的错误“从xml流读取错误”,然后连接断开连接。我似乎遇到的另一个错误是,^C断开连接后出现iqtimeout错误