在使用Tornado Web框架编写聊天应用时应使用何种互斥锁/锁定/等待机制?

0 投票
2 回答
842 浏览
提问于 2025-04-15 19:16

我们正在用Tornado搭建一个聊天服务器。

这个想法很简单,用户通过HTTP ajax连接到Tornado服务器,服务器只有在聊天房间有新消息时才会回应。当连接关闭时,不管是因为有新消息、出现错误还是超时,客户端都会重新打开连接。

在使用Tornado的时候,我们需要考虑用什么库来让这些请求等待一个中心对象的信号,像是 A_NEW_MESSAGE_HAS_ARRIVED_ITS_TIME_TO_SEND_BACK_SOME_DATA 这样的通知。

如果用Win32的术语来描述,每个异步调用就像是一个线程,它会在某个中心的互斥锁/事件等上等待,使用 WaitForSingleObject(...)

我们会在标准的Python环境(Tornado)中工作,有没有什么内置的东西可以用?我们需要外部库或服务器吗?Tornado有没有推荐的方案?

谢谢!

2 个回答

0

Tornado有一个“聊天”示例,使用的是长轮询技术。这个示例里包含了你所需要的所有东西(其实可能还多了一些,因为它还包括了一个第三方登录功能)。

2

我正在研究开发聊天应用程序的最佳选择,也在考虑使用tornado这个框架。这个粗略的资料 《构建实时用户体验》 中有一章讲的是用tornado来构建聊天应用,可能对你有帮助。祝你好运 :)

撰写回答