跳转到主要内容

向Django添加converse.js(JavaScript XMPP客户端)

项目描述

此应用程序旨在使将Converse.js集成到Django变得更加容易。

目前 django-conversejs 提供以下功能:

  • Converse.js的最小化分发版

  • 模板标签,帮助您在Django项目中包含converse.js

  • 数据库模型,用于存储每个用户的XMPP用户名和密码

  • 通过settings.py进行Converse.js配置

  • 类似单一登录(SSO)的体验

安装和配置

TracyWebTech/fix-gevent分支安装SleekXMPP

pip install git+https://github.com/TracyWebTech/SleekXMPP@fix-gevent

安装django-conversejs

pip install git+https://github.com/TracyWebTech/django-conversejs

conversejs添加到settings.py中安装的应用程序

INSTALLED_APPS = {
    ...
    'conversejs',
    ...
}

在settings.py中配置BOSH服务URL

CONVERSEJS_BOSH_SERVICE_URL = 'https://my-bosh-service.com'

使用django-conversejs自定义标签在模板中加载静态文件

{% load conversejs %}
...
<head>
  ...
  {% conversejs_static %}
  ...
</head>

使用我们的自定义标签加载聊天面板和JavaScript初始化器

{% load conversejs %}
...

  {% conversejs_chatpanel %}
  {% conversejs_initialize %}
</body>

更新数据库模式

python manage.py syncdb
python manage.py migrate # optional

添加XMPP帐户

  • 登录Django Admin

  • 单击“+ 添加”按钮添加XMPP帐户

  • 从下拉框中选择用户,然后输入帐户的JabberID和密码

现在,每次选择该用户登录您的网站时,他都将自动使用您提供的凭据登录XMPP服务器。

启用XMPP自动注册

通过启用自动注册,django-conversejs 将尝试为每个登录您网站的未拥有 XMPP 账户的用户创建一个新的 XMPP 账户。

要启用此功能,您只需将 CONVERSEJS_AUTO_REGISTER 选项添加到 settings.py,并将其设置为您的 XMPP 服务域名。请注意,XMPP 服务器和 BOSH 服务 URL 是两件不同的事情。

例如

CONVERSEJS_BOSH_SERVICE_URL = 'https://my-bosh-service.com'

CONVERSEJS_AUTO_REGISTER = 'xmpp.mycompany.com'

在上面的示例中,Django 将从 request.user.username 获取用户名,并尝试在 xmpp.mycompany.com 这个 XMPP 域名下注册,因此如果用户 john 登录,它将尝试注册 john@xmpp.mycompany.com

如果由于任何原因注册失败,django-conversejs 将在每个请求上再次尝试。这是需要改进的地方。

表单

如果您想创建自定义表单以保持您网站的外观和感觉,您可以使用 conversejs.forms 作为起点。

Converse.js 版本

我们目前提供的 Converse.js 版本是 v0.6.4 (修补版)

如果您需要更新版本,请提交一个问题或拉取请求。

待办事项

  • 编写测试

  • 允许用户重置 XMPP 账户密码。这对于允许使用其他 XMPP 客户端非常有用。

  • 允许用户设置头像

  • 当在 django 中更新 XMPP 名称和电子邮件时,自动更新 XMPP 名称和电子邮件(使用信号)

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面