在这篇文章中,我们将带领您了解在ejabberd中使用MySQL的全貌,同时,我们还将为您介绍有关Conversejs群聊订阅(ejabberd)、Ejabberd1000虚拟主机是否可行?、ejab
在这篇文章中,我们将带领您了解在 ejabberd 中使用 MySQL的全貌,同时,我们还将为您介绍有关Conversejs 群聊订阅 (ejabberd)、Ejabberd 1000 虚拟主机是否可行?、ejabberd 2.1.2 发布,即时通讯、ejabberd 20.12 SASL SCRAM 修改的知识,以帮助您更好地理解这个主题。
本文目录一览:- 在 ejabberd 中使用 MySQL
- Conversejs 群聊订阅 (ejabberd)
- Ejabberd 1000 虚拟主机是否可行?
- ejabberd 2.1.2 发布,即时通讯
- ejabberd 20.12 SASL SCRAM 修改
在 ejabberd 中使用 MySQL
Ejabberd对Mysql和PostgreSQL提供天然的扩 展支持,下文将简要说下在linux和windows下对Mysql的支持.
一,MySQL准备工作
1,添加一个用户
Sql代码
mysql> GRANT ALL ON ejabberd.* TO ''ejabberd''@''<EJABBERD_IP>'' IDENTIFIED BY ''<PASSWORD>'';
mysql> flush privileges;
mysql> GRANT ALL ON ejabberd.* TO ''ejabberd''@''<EJABBERD_IP>'' IDENTIFIED BY ''<PASSWORD>'';
mysql> flush privileges;
2, 创建Ejabberd数据库
Sql代码
mysql> CREATE DATABASE ejabberd;
mysql> CREATE DATABASE ejabberd;
3,获取 Ejabberd数据库脚本
Sql代码
wget
wget
4,导入数据库
Sql代码
mysql>use ejabberd
mysql> source /home/mysql.sql -p
mysql>use ejabberd
mysql> source /home/mysql.sql -p
5,检查脚本
Sql代码
echo "show tables;" | mysql -D ejabberd -uroot -p
Enter password:
Tables_in_ejabberd
last
privacy_default_list
privacy_list
privacy_list_data
private_storage
rostergroups
rosterusers
spool
users
vcard
vcard_search
echo "show tables;" | mysql -D ejabberd -uroot -p
Enter password:
Tables_in_ejabberd
last
privacy_default_list
privacy_list
privacy_list_data
private_storage
rostergroups
rosterusers
spool
users
vcard
vcard_search
二,安装编译Ejabberd
a,Linux下安装
编 译安装Ejabberd
Sql代码
tar zxvf ejabberd-2.1.1.tar.gz
cd ejabberd-2.1.1/src
./configure --prefix==/usr/local/ejabberd --enable-odbc
make&&make install
tar zxvf ejabberd-2.1.1.tar.gz
cd ejabberd-2.1.1/src
./configure --prefix==/usr/local/ejabberd --enable-odbc
make&&make install
b,Windows下的安装
直接安装编译的安装包。
三,配置Ejabberd
参 考文章:https://support.process-one.net/doc/display/MESSENGER /Using+ejabberd+with+MySQL+native+driver
Conversejs 群聊订阅 (ejabberd)
如何解决Conversejs 群聊订阅 (ejabberd)
我一直在努力使用 conversejs 和 ejabberd 配置群聊。从我偶然发现的文档来看,似乎可以有一个用户可以订阅的持久群聊,这将允许他们在群聊中不存在的情况下接收来自群聊的消息。
例如:我希望能够在我的 conversejs 客户端上简单地关闭群聊,但仍会收到来自该群聊的通知。
这是一个全新的 ejabberd 21.04 和 conversejs 7.0.6 安装(使用 websockets)。
我尝试做的是通过conversejs客户端创建一个房间,然后通过ejabberd cli添加订阅: ejabberdctl subscribe_room user@my.example.com/muc user test_room@conference.my.example.com urn:xmpp:mucsub:nodes:messages
我最困惑的一件事是群聊的配置面板中标题为“关联发布订阅节点的 XMPP URI”的字段。我不知道如何格式化它,但在网上找到了一些线索......我尝试过的是一些不同的配置,例如: xmpp:my.example.com?;node=messages
但我真的只是抓住了这里的稻草。
如果有人能帮我弄清楚我在这个 URI 上做错了什么,或者可以向我展示一个工作示例,那就太棒了。如果 XMPP 无法实现我想要做的事情,也请告诉我。
谢谢!
解决方法
可以有一个用户可以订阅的持久群聊,这将允许他们在不在群聊中时从群聊中接收消息。
没错。
ejabberdctl create_room room1 conf.localhost localhost
ejabberdctl change_room_option room1 conf.localhost persistent true
ejabberdctl change_room_option room1 conf.localhost allow_subscription true
ejabberdctl subscribe_room user1@localhost User1 room1@conf.localhost urn:xmpp:mucsub:nodes:messages
现在我将使用 send_message API 调用向房间发送消息。这要求发件人在线,因此在此示例中注册并登录到 admin@localhost。当然,登录到 user1@localhost 以接收来自房间的通知。这些客户不需要加入房间。
ejabberdctl send_message groupchat admin@localhost room1@conf.localhost Sub Body
Ejabberd 1000 虚拟主机是否可行?
如何解决Ejabberd 1000 虚拟主机是否可行?
我们正在开发具有 1000 个虚拟主机的聊天应用程序。每个虚拟主机一个公司。我们正在挣扎超过 20 个虚拟主机,服务器有时会变慢。单个节点中可能有多少虚拟主机。添加1000个虚拟主机时服务器的配置是什么。
操作系统:Centos 8 版本:ejabberd20.04 数据库:MysqL
如果对我有任何帮助,那将是非常有用的。
解决方法
我怀疑操作系统会在试图让十多个虚拟机满意的情况下陷入困境。 (正如你发现的只有 20 个。)这是一台强大的机器吗?我会使用带有单个 MySQL 实例的单个服务器,并将 company_id
作为许多表中 PRIMARY KEY
的一部分。
(这个问题在 dba.stackoverflow.com 中可能更有吸引力。这个 stackoverflow.com 更侧重于编码。)
相比之下,MySQL 本身最多可以达到一百左右真正的并发查询。几千人聊天是没有问题的,因为他们真的并没有同时做任何事情。
使用 VM,您拥有以下层:
- 操作系统协调虚拟机
- 每个 VM 协调其中的进程(MySQL 等)
- 每个 MySQL 协调连接。
使用单个 MySQL 实例:
- 一个操作系统,没有虚拟机操作系统。
- 一个 MySQL。
- 很多连接(不是大问题)。
- 相同数量的活动连接(很少超过一打)。
此外,让我们看看 RAM 使用情况。
- 单个对话将涉及可能一兆字节的数据(聊天对话、索引等)。
- 加载了 MySQL(代码、数据、开销等)的虚拟机可能需要 1 GB 以上的容量。
这意味着一千个虚拟机可能需要 TB 的 RAM,只是为了最低限度的使用。同时,相同流量的整合聊天平台可以处理(我估计)大约 4GB。
(如果你有不可告人的理由想要做虚拟机,那就说出来。)
ejabberd 2.1.2 发布,即时通讯
该版本修正了 PubSub、PEP、WebAdmin 离线消息显示和服务器停止时的一些bug。 下载地址: http://www.process-one.net/en/ejabberd/downloads/ejabberd 20.12 SASL SCRAM 修改
如何解决ejabberd 20.12 SASL SCRAM 修改
我曾经在文件 cyrsasl_scam.erl
.. 的第 2 步和第 4 步中修改 ejabberd 17.x scram sasl,现在使用新版本的 ejabberd,相关文件已移至 xmpp 依赖项。
所以我的问题是如何修改 SCRAM 身份验证过程中的第 2 步和第 4 步?
谢谢。
解决方法
是的,基本上,src/cyrsasl_scram.erl
中的代码已移至文件 deps/xmpp/src/xmpp_sasl_scram.erl
因此,在该文件中应用您的自定义,然后使用
重新编译所有内容(它将仅重新编译更改的文件)./rebar compile
然后重新安装 ejabberd 和依赖项
make install
我们今天的关于在 ejabberd 中使用 MySQL的分享就到这里,谢谢您的阅读,如果想了解更多关于Conversejs 群聊订阅 (ejabberd)、Ejabberd 1000 虚拟主机是否可行?、ejabberd 2.1.2 发布,即时通讯、ejabberd 20.12 SASL SCRAM 修改的相关信息,可以在本站进行搜索。
本文标签: