使用Tornado Web Framework编写聊天应用程序时要使用的互斥锁/锁定/等待机制

时间:2010-02-14 17:39:17

标签: python asynchronous tornado

我们正在使用Tornado实现聊天服务器。

前提很简单,用户打开与Tornado服务器的HTTP ajax连接,只有当聊天室中出现新消息时,Tornado服务器才会应答。每当连接关闭时,无论是否有新消息进入或发生错误/超时,客户端都会重新打开连接。

关注龙卷风,问题在于我们可以使用什么库让我们让这些调用等待一些可以发出信号的中心对象 - A_NEW_MESSAGE_HAS_ARRIVED_ITS_TIME_TO_SEND_BACK_SOME_DATA

要以Win32术语描述,每个异步调用都将表示为一个线程,该线程将挂在某个中央Mutex / Event / etc上的WaitForSingleObject(...)上。

我们将在标准的Python环境(Tornado)中运行,我们可以使用内置的东西吗,我们需要一个外部库/服务器,Tornado建议有什么吗?

由于

2 个答案:

答案 0 :(得分:2)

我正在研究开发聊天应用程序的最佳选择,同时也在研究龙卷风。这个粗略的削减Building the Realtime User Experience有一章关于使用龙卷风构建聊天应用程序,这可能对您有用。祝你好运:))

答案 1 :(得分:0)

Tornado有一个使用长轮询的“聊天”示例。它包含您需要的一切(实际上,可能比您需要的更多,因为它包含第三方登录)