我已经阅读了很多与此相关的问题,但没有一个是令人满意的。
现有应用
A minimalist social network implemented using Expressjs as an API.Using MySql as DB.socket.io for notifications and ember.js as a frontend framework.
我想要整合的东西
我只想实现 XMPP 的一些功能,例如
- Peer 2 Peer Messaging
- Presence and Last Seen
- Group Chat
- Read Receipts
我从阅读类似问题中得到的一个基本想法。
- Need a client library (Strophe.js,Converse.js)
- Need a XMPP server (ejabberd,Openfire,Prosody)
问题
- 如何在此处集成聊天功能?
- 如何对 XMPP 用户进行身份验证(仅供引用,我目前已实现 JWT 身份验证)?
- 关于使用 redis(pub/sub) 和 socket.io 或 mqtt pub/sub 来实现聊天的建议。它是否可扩展?/性能呢?
What I asked might be too broad.But still don't have any idea on using which set technologies to use.
最佳答案
出于学习目的,您可以使用 ejabberd+converse.js 实现所有目标 以下步骤将在 ubuntu 中设置环境
- 按照 https://www.digitalocean.com/community/tutorials/how-to-install-ejabberd-xmpp-server-on-ubuntu 设置 ejabberd
通过在 ubuntu 中编辑 /etc/hosts 文件来创建主机绑定(bind)
127.0.1.2 talk.rajesh6115.local
使用
安装 apache2sudo apt-get update sudo apt-get install apache2
在你的 apache 中为 bosh (XEP-0206) 设置一个虚拟主机,如下所示 /etc/apache2/sites-available/talk.rajesh6115.local.conf
<VirtualHost *:80> ServerName talk.rajesh6115.local ServerAlias www.talk.rajesh6115.local ServerAdmin webmaster@talk.rajesh6115.local DocumentRoot /var/www/talk.rajesh6115.local ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ProxyPass /http-bind http://talk.rajesh6115.local:5280/http-bind/ ProxyPassReverse /http-bind http://talk.rajesh6115.local:5280/http-bind/ </VirtualHost>
现在你可以配置 converse js 指向你的 bosh 服务,然后你的通信就开始了
注意:
通过添加如下行在 ejabberd 中设置虚拟主机
hosts:
- "talk.rajesh6115.local"
设置管理员登录。使用此登录您可以创建用户。
admin:
user:
- "admin": "talk.rajesh6115.local"
- 为了让 conversejs 与 xmpp 服务器对话,你只需要提供一件事,那就是 bosh 服务 url。更多细节 https://conversejs.org/docs/html/development.html#initialize
7.最后如何与web应用集成?
方法1(简单): 对 webapp 和 xmpp 使用相同的登录名意味着 rajesh@talk.rajesh6115.local 可以是电子邮件地址,也可以是有效的 jid
方法二: 使用身份验证服务器,成功身份验证后将返回 jid 和密码,然后使用提供的凭据启动 xmpp session 。
关于node.js - 如何将聊天与 nodejs 和 xmpp 集成到我现有的 Web 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32283035/