2011-04-28 99 views
2

如果你想在Django中实现聊天(即实时文本对话),你会怎么做呢?你会如何去django实现聊天?

我在它的想法(请不要对小白怜悯) -
创建存储归档消息和一个用于存储当前消息的表。
并通过使用javascript每20秒查询当前消息表填充当前聊天。但是这个感觉这么错。
必须有更好的方法。我听说过所谓的推技术。我如何使用它与Django?
P.S.我的网站正在共享托管在Dreamhost上。

回答

1

如果你主要关心的前端,看看彗星。

至于后端,你有很多不同的选择。更直接的方法是将每个聊天消息存储在给定聊天室的数据库中。聊天室表和聊天消息之间可能有多对多的关系。

其他解决方案包括未内置到Django中的键值存储数据库。您可以将消息推送到redis集合中,或将活动的聊天室数据存储在memcached中。

由于这是在Dreamhost上,我会看看数据库选项。事实是,你必须存储一些数据与每个聊天消息。是谁制作的,是什么时间制作的,等等。这将在你的环境中的某个时刻进入桌面。试着让它工作,然后看看你是否可以加快速度。

+0

Upvote for“只是让它工作,然后看看你能不能更快。” – Sussagittikasusa 2011-04-28 08:01:19

3

大多数网络聊天应用程序倾向于使用彗星编程。彗星并不是真正的推动技术,而更多的是对它的模拟。首先彗星有不同的实现,但通常使用池和ajax来重复检查服务器,看看是否有消息。彗星通常会导致过多的往返行程,因此已经采取了一些步骤来寻找更合适的替代方案,如波什只是保持连接畅通。这实际上可以被认为是真正的推动,而不是彗星。维基链接下面列出了替代品,但通常我认为彗星和波什是最常用的聊天方法。你甚至可以将两种方法一起使用。这里有一些链接。