`
langzhe
  • 浏览: 286908 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第一次写ejabberd gen_mod module 服务端简单返回数据

阅读更多

最近两天 看了一下 ejabberd的用法,关于http request handler 在process-one.net上说的很清楚,很件的就实现一个Demo.

对于gen_mod 只写个start/2 stop/1 也很简单。但想做点事情对我来说有点难度了。

带着疑问开始探索了,有人会 但不想直接让人家教,只题醒一下就够了。不多说了

1、用了ejabberdhooks

2、用了ejabberdrouter

3、代码关键地方是11行和25行(不做解释,我也是朦胧懂,期待中。。。)

 

 

-module(my_module).
-behaviour(gen_mod).
-include("ejabberd.hrl").
-include("jlib.hrl").

%% gen_mod callback  
-export([start/2, stop/1, test/3]).

start(Host, _Opt) ->
        ?DEBUG("-start my_module langxianwu~p,Host=~p",[lxwstart,Host]),
        ejabberd_hooks:add(user_send_packet,Host,?MODULE,test,50),
        ?DEBUG("-start my_module langxianwu~p",[lxwend]).
stop(_Host) -> ok.

test(From, To, Packet) ->
    ErrText = "Your dead LOL langxianwusendmessage",
    Lang = xml:get_tag_attr_s("xml:lang", Packet),
    Err = jlib:make_error_reply(Packet, ?ERRT_RESOURCE_CONSTRAINT(Lang, ErrText)),
    #jid{user=User} = To,
    ?DEBUG("langxianwutest1 packet Errtext= ~p,~n Lang ~p,~n Err=~p,~n User=~p ~n", [ErrText, Lang, Err,User]),
    case User of
        langzhe ->
             ?DEBUG("langzhetestUser= ~p,~n ", [User]);
        _->  ?DEBUG("langzhetestuser~p~n",[ok]),
           ejabberd_router:route(To, From, Err)
    end,
    %%ejabberd_router:route(To, From, Err),
    ?DEBUG("langxianwutest2 packet from ~p to ~p :~p", [From, To, Packet]).
~                                                                                                                                                            
~                                                                                                                                                            
~                                                                             
  • 大小: 69.8 KB
分享到:
评论
3 楼 langzhe 2011-12-16  
2057 写道
hi,能指教下这个怎么用吗?

什么问题
2 楼 2057 2011-11-25  
hi,能指教下这个怎么用吗?
1 楼 langzhe 2010-09-15  
09-15 presee testsdlkj
1.configure 要有参数
./configure --enable-odbc && make && make install
2.安装mysql驱动
https://support.process-one.net/doc/display/CONTRIBS/Yxa#Yxa-DownloadthecompleteMySQLErlangsourcecode

3.修改配置文件ejabberd.cfg
1>注释掉 %%{auth_method, external}.
2> 去掉{auth_method, external}.的注释
     并添加
{odbc_server,{mysql, "localhost", "ejabberd", "root", "123456"}}.
3>配置gen_


以上是配置msyqsl步骤

相关推荐

    ejabberd中mod_privacy_odbc.erl实现没有完全遵循xmpp协议

    在ejabberd中,`mod_privacy_odbc.erl`是用于处理用户隐私列表模块的一部分,该模块与数据库(通常通过ODBC接口)交互来存储和管理用户的隐私设置。然而,题目指出`mod_privacy_odbc.erl`的实现并没有完全遵循XMPP...

    ejabberd_rest_client:面向ejabberd的REST客户端

    ejabberd_rest_client是与ejabberd服务器交互的一个客户端库,它利用ejabberd的API接口,通过RESTful方式来操作ejabberd服务器,实现了对ejabberd服务器的远程控制和数据管理。 ejabberd API是ejabberd服务器提供的...

    mod_mam_custom:ejabberd mod_mam模块的自定义模板

    mod_mam_custom 将MAM(XEP-0313)存档首选项和消息从内部mnesia DB导出到MySQL DB 描述 将MAM存档首选项和消息从内部mnesia DB导出到MySQL DB。 根据数据库的大小,这可能会花费大量时间。 先决条件 您应该在配置...

    ejabberd_mod_gcm:用于Ejabberd的Google Cloud Messaging API(推送消息)

    mod_gcm是一个ejabberd模块,可使用Google Cloud Messaging API将离线消息作为PUSH通知发送给Android。 考虑使用实现并与许多PUSH服务一起使用的 。 该模块与无关。 该模块的主要目标是通过Google Cloud ...

    mod_offline_my:将Ejabberd脱机消息通知转发到外部HTTP端点

    最简单的方法是在ejabberd.yml模块设置下启用mod_offline_my并设置某些配置选项。 配置选项 mod_offline_my需要一些参数才能正常运行。 应在ejabberd.yml mod_offline_my下设置以下选项: host (必填, string )-...

    ejabberd-1.1.3_1-windows-installer.exe

    点击即可安装。。。一路next下去

    ejabberd 服务器测试客户端spark

    ejabberd是一款开源的XMPP服务器,广泛用于构建实时通信系统,如即时消息、VoIP、协作工具等。在部署ejabberd服务器后,为了确保其正确配置和功能正常,通常需要一个客户端来进行测试。在这个场景中,"ejabberd ...

    ejabberd源码

    ejabberd是一款强大的即时通讯服务器,它基于Jabber/XMPP协议,这使得ejabberd能够支持丰富的交互式通信功能,如文本聊天、音视频通话、群聊、文件传输等。作为一款开源软件,ejabberd遵循GPLv2许可证,允许用户自由...

    Android IM开发 Ejabberd+asmck+spack

    在Android平台上进行即时通讯(Instant Messaging,简称IM)开发是一项技术含量较高的工作,涉及到网络通信、数据加密、用户体验等多个方面。本项目“Android IM开发 Ejabberd+asmck+spack”提供了一套完整的解决...

    Ejabberd-Packet-Interceptor:拦截和更改消息的 Ejabberd 模块

    Ejabberd-Packet-Interceptor 拦截和更改消息的 Ejabberd 模块这个模块接受一个 Ejabberd 消息包,改变消息体并发送它。 该模块挂钩 packet_filter 并检查每个数据包是否有消息正文。 如果有消息正文,它会对其进行 ...

    android+ejabberd

    IM(ejabberd)服务器的客户端android开发的代码详解,该代码例子包含单聊、群聊、发送文字、发送及接收文件等功能。

    iOS xmpp ejabberd服务器

    iOS即时通讯系统在近年来变得越来越流行,而XMPP(Extensible Messaging and Presence Protocol)作为一款开放标准的协议,被广泛应用于此类系统中。本文件主要关注的是如何在iOS平台上使用XMPP与ejabberd服务器进行...

    ejabberd windows installer

    ejabberd是一款开源的XMPP服务器,它基于Erlang编程语言,提供高度可扩展性和高并发处理能力。在Windows环境下,ejabberd通常通过安装程序进行部署,这正是"ejabberd windows installer"所涉及的内容。Ejabberd不...

    ejabberd安装配置[归纳].pdf

    Ejabberd是一款流行的开源即时通讯服务器软件,具有高度灵活性和可扩展性。下面是Ejabberd安装配置的详细知识点解析: Ejabberd下载 Ejabberd的下载可以从官方网站获取,目前支持多种操作系统,包括Windows、Linux...

    ejabberd的安装包

    ejabberd安装包,很好的工具!适合安装!一定会很好用的!

    Android使用smack连接ejabberd服务器注册、收发消息

    ejabberd是一个开源的XMPP服务器,它提供了稳定、安全且可扩展的服务,支持多种编程语言的客户端接口。Smack是Java和Android平台上常用的XMPP客户端库,它提供了丰富的API,使得开发者可以轻松地构建XMPP应用。 **...

    AnyQ服务端源码.zip_Jabber_gmail_icq_msn_xmpp server VC

    标题中的“AnyQ服务端源码.zip”表明这是一个包含了AnyQ服务端源代码的压缩文件,主要用于实现多种即时通讯协议的服务器。这个服务端能够支持Jabber、gmail、icq和msn协议,同时也兼容xmpp(Extensible Messaging ...

    即时通讯服务端测试工具

    即时通讯服务端测试工具是开发过程中不可或缺的一部分,特别是在构建基于XMPP协议的系统时。XMPP(Extensible Messaging and Presence Protocol)是一种开放标准,用于实时通信和数据交换,广泛应用于聊天应用、协作...

    mod_http_offline:ejabberd 模块在用户离线时发送帖子

    Ejabberd 模块在用户离线时发送帖子。 该模块基于 、 以及来自网络的大量代码和技巧,以适应与 Ejabber 14.12 一起使用。 安装 克隆这个存储库: git clone git@github.com:raelmax/mod_http_offline.git 更改...

Global site tag (gtag.js) - Google Analytics