gpt4 book ai didi

python - 帮助我理解来自 twisted.words msn 示例的回溯

转载 作者:行者123 更新时间:2023-11-28 18:55:56 34 4
gpt4 key购买 nike

我正在运行位于此处的扭曲文档中的 twisted.words msn 协议(protocol)示例:http://twistedmatrix.com/projects/words/documentation/examples/msn_example.py

我知道在 stackoverflow 上还有另一个关于这个示例 .py 的问题,但这是一个完全不同的问题。当我运行该示例时,它的行为符合预期。登录帐户并显示有关好友列表中用户的信息,但在完成后它会吐出此回溯

> Traceback (most recent call last):  
> File
> "c:\python26\lib\site-packages\twisted\python\log.py",
> line 84, in callWithLogger
> return callWithContext({"system": lp}, func, *args, **kw) File
> "c:\python26\lib\site-packages\twisted\python\log.py",
> line 69, in callWithContext
> return context.call({ILogContext: newCtx}, func, *args, **kw) File
> "c:\python26\lib\site-packages\twisted\python\context.py",
> line 59, in callWithContext
> return self.currentContext().callWithContext(ctx,
> func, *args, **kw) File
> "c:\python26\lib\site-packages\twisted\python\context.py",
> line 37, in callWithContext
> return func(*args,**kw)
> --- <exception caught here> --- File "c:\python26\lib\site-packages\twisted\internet\selectreactor.py",
> line 146, in _doReadOrWrite
> why = getattr(selectable, method)() File
> "c:\python26\lib\site-packages\twisted\internet\tcp.py",
> line 463, in doRead
> return self.protocol.dataReceived(data)
> File
> "c:\python26\lib\site-packages\twisted\protocols\basic.py", line 239, indataReceived
> return self.rawDataReceived(data) File
> "c:\python26\lib\site-packages\twisted\words\protocols\msn.py",
> line 676 in rawDataReceived
> self.gotMessage(m) File "c:\python26\lib\site-packages\twisted\words\protocols\msn.py",
> line 699, in gotMessage
> raise NotImplementedError exceptions.NotImplementedError:

谁能帮我理解这是什么意思?

最佳答案

它看起来像是对 MSN 服务器运行方式的改变,尽管它并不真正算作对协议(protocol)的改变。发生的事情是 MSN 服务器在客户端连接后立即向客户端发送一条消息,而 Twisted words 示例并未预料到这一点。

假设您从 http://twistedmatrix.com/projects/words/documentation/examples/ 运行 msn_example.py ,您可以通过将以下代码添加到示例中(紧接在 listSynchronized 函数结束之后)来使示例运行并查看发生了什么:

def gotMessage(self, message):
print message.headers
print message.getMessage()

进行更改后,如果您运行该示例,您应该会看到以下内容:

...
2009-08-25 00:03:23-0700 [Notification,client] {'Content-Type': 'text/x-msmsgsinitialemailnotification; charset=UTF-8', 'MIME-Version': '1.0'}
2009-08-25 00:03:23-0700 [Notification,client] Inbox-Unread: 1
2009-08-25 00:03:23-0700 [Notification,client] Folders-Unread: 0
2009-08-25 00:03:23-0700 [Notification,client] Inbox-URL: /cgi-bin/HoTMaiL
2009-08-25 00:03:23-0700 [Notification,client] Folders-URL: /cgi-bin/folders
2009-08-25 00:03:23-0700 [Notification,client] Post-URL: http://www.hotmail.com
2009-08-25 00:03:23-0700 [Notification,client]

我们可以看到服务器正在向客户端发送一条消息,其中指定了该帐户的未读电子邮件消息数。

希望对您有所帮助!

关于python - 帮助我理解来自 twisted.words msn 示例的回溯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1244733/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com