你将如何在 django 中实现聊天?

     2023-02-16     310

关键词:

【中文标题】你将如何在 django 中实现聊天?【英文标题】:How would you go about implementing chat in django? 【发布时间】:2011-04-28 05:00:36 【问题描述】:

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

我对此的看法(请对菜鸟有所怜悯)- 创建一个用于存储归档消息的表和一个用于存储当前消息的表。 并通过使用 javascript 每 20 秒查询一次当前消息表来填充当前聊天。但这感觉太不对劲了。 一定有更好的方法。我听说过一种叫做推送技术的东西。如何在 django 中使用它? 附言我的网站正在共享托管在 dreamhost 上。

【问题讨论】:

【参考方案1】:

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

Django powered AJAX Chat Django and Comet Comet (programming)

【讨论】:

【参考方案2】:

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

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

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

由于这是在dreamhost 上,我会查看数据库选项。事实是,您必须在每条聊天消息中存储一些数据。谁制作了它,它是什么时候制作的,等等。这必须在您的环境中的某个时间点进入表格。试着让它工作,然后看看你能不能让它更快。

【讨论】:

赞成“让它工作,然后看看你能不能让它更快。”

你将如何在 Java 中实现 LRU 缓存?

】你将如何在Java中实现LRU缓存?【英文标题】:HowwouldyouimplementanLRUcacheinJava?【发布时间】:2010-09-1807:16:25【问题描述】:请不要说EHCache或OSCache等。出于这个问题的目的,假设我想只使用SDK来实现我自己的(边做边学)。鉴于... 查看详情

如何在 Android 应用中实现 XMPP 聊天?

】如何在Android应用中实现XMPP聊天?【英文标题】:HowtoimplementXMPPchatinanandroidapp?【发布时间】:2014-05-0702:33:27【问题描述】:我尝试使用Smack库,但我得到的只是:05-0704:28:43.2992958-2958/g.d.allinonechatE/dalvikvm﹕Couldnotfindclass\'javax.nami... 查看详情

如何在 Jinja 中实现类似 Django 的标签

】如何在Jinja中实现类似Django的标签【英文标题】:HowtoimplementDjango-liketagsinJinja【发布时间】:2015-07-2807:49:09【问题描述】:我想在Jinja中实现与Django模板的自定义标签类似的功能。在Django模板中,要让服务器端函数返回一个字... 查看详情

如何在 Django 中实现追随者/追随者

】如何在Django中实现追随者/追随者【英文标题】:Howtoimplementfollowers/followinginDjango【发布时间】:2011-09-0706:31:40【问题描述】:我想在我的Django应用程序中实现关注者/关注功能。我为每个User(django.contrib.auth.User)都有一个UserProfile... 查看详情

如何在django模板中实现列表迭代[重复]

】如何在django模板中实现列表迭代[重复]【英文标题】:HowtoachievelistIterationindjangotemplate[duplicate]【发布时间】:2012-12-2401:00:43【问题描述】:可能重复:Getlistitemdynamicallyindjangotemplates如何获取具有可变计数器的列表项。目的是获... 查看详情

如何在 iPhone 应用中实现谷歌聊天

】如何在iPhone应用中实现谷歌聊天【英文标题】:howtoimplementgooglechatiniphoneapp【发布时间】:2011-03-1613:08:42【问题描述】:我在网上搜索了很多,但找不到可以帮助我开始googlechat实现的实际示例源代码,xmpp框架提供的示例代码... 查看详情

如何在 Django 模板中实现面包屑?

】如何在Django模板中实现面包屑?【英文标题】:HowtoimplementbreadcrumbsinaDjangotemplate?【发布时间】:2010-10-2400:52:22【问题描述】:在Google搜索“Django面包屑”时提供的一些解决方案包括使用模板和block.super,基本上只是扩展基本块... 查看详情

如何在sqlite django ORM中实现have子句

】如何在sqlitedjangoORM中实现have子句【英文标题】:HowtoimplementthehavingclauseinsqlitedjangoORM【发布时间】:2012-10-3121:42:16【问题描述】:我已经编写了djangosqliteorm语法来检索特定的记录集:fromdjango.db.models.aggregatesimportCountJobStatus.object... 查看详情

如何在使用 facebook-ios-sdk 的应用中实现聊天

】如何在使用facebook-ios-sdk的应用中实现聊天【英文标题】:Howtoimplementchatinanappwhichusesfacebook-ios-sdk【发布时间】:2012-08-1918:36:45【问题描述】:我正在开发一个使用facebook-ios-sdk的iphone应用程序。为了聊天,我使用了quickbloxsdk。... 查看详情

你如何在 django rest 框架中实现 CSRF 令牌?

】你如何在djangorest框架中实现CSRF令牌?【英文标题】:HowdoyouimplementCSRFtokensindjangorestframework?【发布时间】:2021-05-2014:25:37【问题描述】:我注意到,当使用django并且您发出发布请求时,例如使用表单,django要求您添加csrf令牌... 查看详情

如何在 django admin change_form 中实现 pygment 语法高亮?

】如何在djangoadminchange_form中实现pygment语法高亮?【英文标题】:Howtoimplementpygmentsyntaxhighlightingindjangoadminchange_form?【发布时间】:2013-07-0210:56:47【问题描述】:我想在某种情况下在django管理模板中对我的文本字段python代码进行pyg... 查看详情

如何在 Flutter(Android 和 Ios)中实现与 WebRTC 的电话会议视频聊天

】如何在Flutter(Android和Ios)中实现与WebRTC的电话会议视频聊天【英文标题】:HowcaniimplementconferencecallvideochatwithWebRTCinflutter(Android&Ios)【发布时间】:2022-01-2404:56:17【问题描述】:我正在尝试在FlutterforAndroid和Ios中使用WebRTC实... 查看详情

如何在 Swift iOS 中实现 iMessage 渐变?

】如何在SwiftiOS中实现iMessage渐变?【英文标题】:HowcanIimplementtheiMessagegradientinSwiftiOS?【发布时间】:2020-12-2423:40:30【问题描述】:我正在努力实现的目标我正在尝试在SwiftiOS中实现渐变气泡效果,其中顶部的聊天气泡颜色较浅... 查看详情

如何在 iOS 应用中实现 webRTC

】如何在iOS应用中实现webRTC【英文标题】:HowtoimplementwebRTCiniOSapp【发布时间】:2016-09-0113:47:42【问题描述】:我已经通过在我的应用程序中使用xmpp成功实现了xmpp连接和文本聊天。现在想用webRTC实现视频通话。我不知道它的确切... 查看详情

在 Rails 中实现聊天

】在Rails中实现聊天【英文标题】:ImplementingchatinRails【发布时间】:2012-05-0907:14:09【问题描述】:我正在尝试在我的rails应用程序中实现chatmodule。我查看了这个railscastFaye教程。在本教程中,Ryan提到了broadcasting消息,但我想要的... 查看详情

在实时聊天中实现链接

】在实时聊天中实现链接【英文标题】:Implementinglinksinrealtimechat【发布时间】:2015-11-1900:34:47【问题描述】:所以我正在与socket.io和node.js进行实时聊天,我的聊天和一切正常,但如果有人在聊天中链接了一个网站,我希望它自... 查看详情

在 iPad App 中实现多用户聊天

...登录该应用的用户发送文本或音频片段。我正在寻找有关如何实现这一点的指针。我阅读了许多文章。我已经缩小到1)XMPP(Jabber)和2)网络套接字基于解决方案 查看详情

在模板(Django)中实现归档日历时出现 IF 运算符错误

...题描述】:我正在尝试使用日历月实现存档,但我不确定如何在我的模板中实现它并且我遇到了操作错误;错误信息;没有这样的功能:IF。非常感谢任何帮助。defview_calendar(req 查看详情