简单的Python聊天室按房间划分

0 投票
1 回答
981 浏览
提问于 2025-04-16 15:10

我正在尝试写一个简单的聊天服务器,这个服务器可以通过ajax发送命令到一个叫fsockopen的地方,然后再传给一个后台程序(daemon)。如果后台程序收到的命令是“listen”,它就会把请求保存在一个数组里,并记录下这个请求对应的房间。当有新的消息(msg)进来时,它会把这个消息发给所有在那个房间的监听者。有没有好的教程或者例子可以让我了解这个过程是怎么工作的?

谢谢!

-- 在第一个答案发布后添加 --

为了帮助后续的回答,我正在使用jquery的ajax getjson调用一个脚本,这个脚本通过php的fsockopen连接到后台程序。我现在有一个用php写的半功能的后台程序,但我觉得用python写会更合适。另外,我对socket技术还比较陌生,仍在努力理解整个流程。所以我想要一个类似comet的解决方案。

1 个回答

1

App Engine的Channel API可能正是你需要的功能:http://code.google.com/appengine/docs/python/channel/overview.html

如果你不想使用App Engine,可以搜索“Comet”这个更通用的术语。简单来说,你需要一种服务器主动推送数据的方式,而在WebSocket技术还没完全成熟之前,这种功能只能通过一些技巧来模拟实现。

撰写回答