向 ejabberd 服务器添加名称空间

发布于 2024-10-14 04:54:56 字数 138 浏览 4 评论 0原文

我正在使用 ejabberd-2.1.2 服务器。如何向现有 ejabberd 服务器添加新的名称空间。 我想添加名称空间('http://jabber.org/protocol/rosterx')XEP-0144名册项目交换。

谢谢, 萨蒂。

I am using ejabberd-2.1.2 server. How can I add new name space to existing ejabberd server.
I would like to add name space ('http://jabber.org/protocol/rosterx') XEP-0144 Roster Item exchange.

Thanks,
sathi.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

洛阳烟雨空心柳 2024-10-21 04:54:56

创建一个模块,将其命名为 mod_rosterx.erl。将其添加到您的 ejabberd.cfg 文件中。

该文件的内容应类似于以下内容。您需要在 process_local_iq 函数中实际编写代码。另外,这将处理发送给服务器的 IS 节,而不是发送给其他客户端的 IS 节。根据需要调整!

-module(mod_rosterx).
-behavior(gen_mod).

-export([start/2, stop/1, process_local_iq/3]).

-include("ejabberd/src/ejabberd.hrl").
-include("ejabberd/src/jlib.hrl").

-define(NS_ROSTERX, "http://jabber.org/protocol/rosterx").

start(Host, Opts) ->
    IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue),
    mod_disco:register_feature(Host, ?NS_ROSTERX),
    gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_ROSTERX, ?MODULE, process_local_iq, IQDisc).

stop(Host) ->
    gen_iq_handler:remove_iq_handler(ejabberd_local, Host, ?NS_ROSTERX).


process_local_iq(From, To, {iq, ID, set, NS, Language, SubElement}) ->
    {iq, ID, error, NS, Language, []};
process_local_iq(_, _, {iq, ID, get, NS, Language, SubElement}) ->
    {iq, ID, error, NS, Language, []}.

Create a module, name it something like mod_rosterx.erl. Add it into your ejabberd.cfg file.

The contents of this file should be something like the following. You'll need to actually write your code in the process_local_iq functions. Also, this will handle IS stanzas addressed to the server, not addressed to other clients. Adjust as needed!

-module(mod_rosterx).
-behavior(gen_mod).

-export([start/2, stop/1, process_local_iq/3]).

-include("ejabberd/src/ejabberd.hrl").
-include("ejabberd/src/jlib.hrl").

-define(NS_ROSTERX, "http://jabber.org/protocol/rosterx").

start(Host, Opts) ->
    IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue),
    mod_disco:register_feature(Host, ?NS_ROSTERX),
    gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_ROSTERX, ?MODULE, process_local_iq, IQDisc).

stop(Host) ->
    gen_iq_handler:remove_iq_handler(ejabberd_local, Host, ?NS_ROSTERX).


process_local_iq(From, To, {iq, ID, set, NS, Language, SubElement}) ->
    {iq, ID, error, NS, Language, []};
process_local_iq(_, _, {iq, ID, get, NS, Language, SubElement}) ->
    {iq, ID, error, NS, Language, []}.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文