将converse.js(javascript xmpp客户端)添加到django

django-conversejs的Python项目详细描述


此应用程序旨在使Converse.js更容易集成到django中。

当前django-conversejs提供:

  • converse.js的一个小型分布
  • 模板标记,帮助您在django项目中包含converse.js
  • 存储每个用户的xmpp用户和密码的数据库模型
  • 通过settings.py进行converse.js配置
  • 类似单点登录(SSO)的体验

安装和配置

TracyWebTech/fix-geventbranch:

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

安装django conversejs:

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

conversejs添加到您设置中已安装的应用程序中。py:

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

在设置中配置bosh服务url.py:

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

使用django conversejs自定义标记加载模板中的静态文件:

{%loadconversejs%}
...
<head>
  ...
  {%conversejs_static%}
  ...
</head>

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

{%loadconversejs%}
...

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

更新数据库架构:

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

添加xmpp帐户

  • 登录django管理员
  • 单击“+添加”按钮添加xmpp帐户
  • 从“选择”框中选择用户,然后键入帐户的JabberID和密码

现在,每次选择用户登录站点时,他都会自动登录到xmpp中。 使用您提供的凭据的服务器。

启用xmpp自动注册

通过启用自动注册,django-conversejs将尝试创建新的 xmpp帐户的每个用户没有一个,只要他们登录到你的网站。

若要启用,只需将CONVERSEJS_AUTO_REGISTER选项添加到 将其设置为xmpp服务的域。注意xmpp 服务器和bosh服务url是两个不同的东西。

例如:

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

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

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

表格

如果要创建自定义表单以保持网站的外观,可以使用 从conversejs.forms开始。

converse.js版本

我们目前提供converse.jsv0.6.4(补丁)

如果需要更新版本,请打开问题或请求拉取。

待办事项

  • 编写测试
  • 允许用户重置xmpp帐户密码。这对于允许使用其他xmpp客户机很有用。
  • 允许用户设置化身
  • 在Django中更新时自动更新xmpp名称和电子邮件(使用信号)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法使用JAXB配置Moxy   java如何让我的简单Swing telnet客户端正确显示字符?   java中从可运行线程调用主线程的多线程处理   java数据源。EBJ3会话bean中的getConnection()   使用java和正则表达式从xml文件提取值时出现问题   java定制Jersy胡须Mvc   在Java中,“限制并发”是什么意思?   java有没有更干净的方法可以在这里使用Optional,而不在三个地方返回“NA”?   java Tomcat启动,然后崩溃,除非我打电话   java理解客户机和服务器   java时间戳将在视图对象>实体转换期间丢失   如何在java中返回布尔值(基元)?   java使用spring mvc设置日志记录,希望仅对我的代码进行跟踪/调试   用Jackson解析嵌套对象