python – Django中基于XMPP的实时聊天系统
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Django中基于XMPP的实时聊天系统,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2646字,纯文字阅读大概需要4分钟。
内容图文
![python – Django中基于XMPP的实时聊天系统](/upload/InfoBanner/zyjiaocheng/791/1558dcc16fda4ffd8c7d4841050cb507.jpg)
我需要在Django中实现基于XMPP的实时聊天系统.在经过同事的大量鞭打和想法之后,我们想出了这个.
使用机器人的方法:
>当访问者访问该网站时.访问者的XMPP客户端(在本例中为Strophe.JS)开始与XMPP服务器的XMPP-over-BOSH连接,并连接到名为< visitor_id> @ conference.demo.com的房间.目前房间里没有其他人.
>访问者向Django发出带有自定义访客ID的分析请求
> Django视图,将访问者ID存储在名为ActiveUsers的表中.该表包含一个新字段,也称为状态.它将状态设置为INACTIVE.
>此模型在save方法上调度信号.
>该信号由连接到XMPP服务器的机器人拾取并加入房间< visitor_id> @ conference.demo.com.现在我们在房间里有用户和机器人.
>站点支持人员登录到他们的Web界面.
>他们有JS代码,可以长时间轮询Django站点来检查ActiveUsers.它从表中获取行并显示它. (我想过为此使用django-pubsub)
>当访问者键入消息时,它通过XMPP-over-BOSH进入XMPP服务器,房间中的jabber bot看到此消息并将ActiveUsers表中记录的状态更新为ACTIVE.
>如上所述:网站支持人员有JS继续轮询此表.它开始闪烁显示用户正在聊天.
>支持人员现在可以双击该行,这样就开始了与访客房间的XMPP-over-BOSH连接.它知道房间是< visitor_id> @ conference.demo.com.
>机器人看到支持人员已加入房间,更新ActiveUsers记录显示CHATTING.这确保了只有支持人员可以在房间里,即占用房间.
> bot将消息记录到Django表中
>当两者都看到两个用户都离开了房间时,它会删除记录.
ejabberd或openfire将是XMPP服务器.
Apache是??运行mod_wsgi以服务Django和mod_proxy的Web服务器,用于将XMPP-over-BOSh请求代理到XMPP服务器.
这听起来好像这样做吗?有什么建议?我担心Django系统的负载.
(很长.很抱歉’那个.)
使用Presence Stanzas的方法:
在客户端,我使用Strophe JS库支持在线,我添加了回调方法.我很灵活使用ejabberd或openfire作为我的XMPP服务器. XMPP服务器上有许多访问者 – 一些来自站点A,一些来自站点B,但它们都连接到同一个XMPP服务器.当访问者访问该站点时,他们以< visitor_id> _< site_id> @ demo.com的身份连接到XMPP服务器,并且每个人都登录到名为< visitor_id> @ conference.demo.com的房间.销售/支持人员也以< supportsale_id> _< site_id> @ demo.com连接到XMPP服务器.但它们没有连接到任何聊天室.他们的名单上没有任何访客.
显示用户已连接到站点的一种好方法是将状态节传递给销售/支持人员.只有来自同一站点的访客和销售/支持人员相互通信,这就是我拥有< site_id>的原因.在用户名中显示该人所属的网站.
如果您的名单中没有他,您似乎无法订阅用户的状态节. (很合乎逻辑).是否可以自动将连接到系统的站点的每个新用户添加到该站点的销售/支持人员的名单中?这不会自动向销售/支持人员发出信号吗?我该如何实现这一点 – 任何帮助?
解决方法:
我写的就是这个.它被称为Seshat并在网站和Jabber服务器之间使用“代理”机器人(我使用ejabberd).它目前处于测试阶段,主要是因为它尚未在我公司外进行过广泛测试.
注意:尽管README特别提到了Pyramid Web框架,但核心系统与Django,TurboGears或命令行系统一样可行.只是我只打包示例代码,展示如何将它与Pyramid集成.
Seshat正在积极开发中.如果您有任何功能请求,请告诉我们.
内容总结
以上是互联网集市为您收集整理的python – Django中基于XMPP的实时聊天系统全部内容,希望文章能够帮你解决python – Django中基于XMPP的实时聊天系统所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。