GVKun编程网logo

在 ejabberd 中使用 MySQL

7

在这篇文章中,我们将带领您了解在ejabberd中使用MySQL的全貌,同时,我们还将为您介绍有关Conversejs群聊订阅(ejabberd)、Ejabberd1000虚拟主机是否可行?、ejab

在这篇文章中,我们将带领您了解在 ejabberd 中使用 MySQL的全貌,同时,我们还将为您介绍有关Conversejs 群聊订阅 (ejabberd)、Ejabberd 1000 虚拟主机是否可行?、ejabberd 2.1.2 发布,即时通讯、ejabberd 20.12 SASL SCRAM 修改的知识,以帮助您更好地理解这个主题。

本文目录一览:

在 ejabberd 中使用 MySQL

在 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 http://svn.process-one.net/ejabberd/trunk/src/odbc/mysql.sql

wget http://svn.process-one.net/ejabberd/trunk/src/odbc/mysql.sql


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 配置群聊。从我偶然发现的文档来看,似乎可以有一个用户可以订阅的持久群聊,这将允许他们在群聊中不存在的情况下接收来自群聊的消息。

例如:我希望能够在我的 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 虚拟主机是否可行?

如何解决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 发布,即时通讯

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 修改

如何解决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 修改的相关信息,可以在本站进行搜索。

本文标签: