Django与ejabberd在网页聊天应用中的交互

6 投票
2 回答
1267 浏览
提问于 2025-04-17 22:32

我正在做一个网页项目,需要实现一个网页聊天功能。我的项目结构大致是这样的:用户有用户名、密码、昵称和邮箱,可以和在自己好友列表中的其他人聊天。我使用的是django(Python)作为网页的后端,而聊天部分则用xmpp。

我已经阅读了很多关于xmpp的资料,并且用stanzas实现了一个简单的聊天功能,包括添加和删除联系人、修改昵称等。

我想问的是,如何让django和ejabberd之间进行沟通,比如用户注册(我不想要内联注册,只希望在用户创建账户时才能注册)、修改密码、更新昵称等。这些操作大多需要一些特殊权限。

在发帖之前我做了一些研究,我知道有sleekxmp这个库,但我觉得它只是一个xmpp的Python库。此外,我没有找到ejabberd的API。

谢谢。

2 个回答

0

默认情况下,ejabberd使用内部用户数据库,但你可以设置ejabberd来通过外部认证脚本来管理用户。这里有一些示例脚本,可以帮助你与Django应用程序或现有数据库进行集成。你也可以自己编写一个外部认证脚本,从头开始制作。

0

了解一下的概念,以及如何使用类似的工作方式来解决这个问题。你想在视图中简单粗暴地使用一个流畅的xmpp客户端。

因为聊天是双向的,你可能需要WebSocket + Django Python WebService,或者Django / Comet (推送):最少的坏选择?,甚至是“老派”的Django中的长轮询

撰写回答