Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax 您将如何在django中实现聊天?_Ajax_Django_Chat_Server Push - Fatal编程技术网

Ajax 您将如何在django中实现聊天?

Ajax 您将如何在django中实现聊天?,ajax,django,chat,server-push,Ajax,Django,Chat,Server Push,如果您要在Django中实现聊天(即实时文本对话),您将如何实现它? 我对此事的看法(请宽恕这件事)—— 创建一个用于存储存档邮件的表和一个用于存储当前邮件的表。 并通过使用javascript每隔20秒查询一次当前消息表来填充当前聊天。但这感觉很不对。 一定有更好的办法。我听过一种叫做推送技术的东西。如何将其与django一起使用? 另外,我的网站正在dreamhost上共享。大多数网络聊天应用程序倾向于使用Comet编程。Comet不是一种真正的推送技术,而是一种模拟技术。首先,comet有

如果您要在Django中实现聊天(即实时文本对话),您将如何实现它?

我对此事的看法(请宽恕这件事)——
创建一个用于存储存档邮件的表和一个用于存储当前邮件的表。
并通过使用javascript每隔20秒查询一次当前消息表来填充当前聊天。但这感觉很不对。
一定有更好的办法。我听过一种叫做推送技术的东西。如何将其与django一起使用?

另外,我的网站正在dreamhost上共享。

大多数网络聊天应用程序倾向于使用Comet编程。Comet不是一种真正的推送技术,而是一种模拟技术。首先,comet有不同的实现,但通常使用池和ajax来反复检查服务器是否有消息。Comet通常会导致太多的往返,因此已经采取了一些措施来寻找更合适的替代方案,例如Bosh,它只是保持连接的开放性。这实际上可以被认为是真正的推力,而不是彗星。下面的wiki链接列出了一些备选方法,但总体而言,我认为Comet和Bosh是最常用的聊天方法。你甚至可以同时使用这两种方法。这里有一些链接


如果您主要关注前端,请查看comet

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

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

因为这是在dreamhost上,所以我会查看数据库选项。事实上,您必须在每条聊天信息中存储一些数据。是谁做的,是什么时候做的,等等。在您的环境中的某个时刻,这些内容必须放到表中。试着让它工作,然后看看你是否能让它更快。

投票支持“让它工作,然后看看你是否能让它更快。”