摘要: ejabberd作为otp应用,与其相关的套接字模块为ejabberd_receiverejabberd_socketejabberd_listenerejabberd是分为两步来完成此任务的:1、ejabberd_listener首先根据配置文件,把相应的端口打开(处于监听状态),但是未接受连接配... 阅读全文
posted @ 2015-12-20 11:39 wales.song 阅读(969) 评论(0) 推荐(0) 编辑
摘要: ejabberd_listener作为supervisor启动初始化的时候创建listen_sockets(ets)表根据配置参数启动相应的接口[{{5222,{0,0,0,0},tcp}, ejabberd_c2s, [{access,c2s},{shaper,c2s_shaper},{max... 阅读全文
posted @ 2015-12-18 17:06 wales.song 阅读(223) 评论(0) 推荐(0) 编辑
摘要: ejabberd_iq_sup作为supervisor启动,子程序启动的模块为gen_iq_handlergen_iq_handler:根据配置参数iqdisc,可选项为no_queue, one_queue, {quques, N}和paralleladd_iq_handler(Component... 阅读全文
posted @ 2015-12-18 16:56 wales.song 阅读(190) 评论(0) 推荐(0) 编辑
摘要: ejabberd_captcha作为gen_server启动,提供验证码的功能-----------------------------------------------------------ejabberd_receiver作为supervisor启动,子程序启动的模块为ejabberd_re... 阅读全文
posted @ 2015-12-18 16:44 wales.song 阅读(189) 评论(0) 推荐(0) 编辑
摘要: ejabberd_local用于注册发到服务器本身的IQ以及路由到本地的ejabberd_sm(message)对外主要提供route,register_iq_handler,unregister_iq_response_handler方法route(From, To, Packet) -> ... 阅读全文
posted @ 2015-12-18 16:30 wales.song 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 作为gen_server启动初始化时创建s2s(mnesia)表,保存的是服务器之间的联系信息,server和server之间的路由主要为do_route(From, To, Packet)方法do_route(From, To, Packet) -> ?DEBUG("s2s manager~... 阅读全文
posted @ 2015-12-16 22:35 wales.song 阅读(380) 评论(0) 推荐(0) 编辑
摘要: ejabberd_router作为gen_server启动,作为系统的路由对外提供注册路由、删除路由初始化时创建route(mnesia)表,监控注册的路由进程主要方法为do_route(OrigFrom, OrigTo, OrigPacket)方法do_route(OrigFrom, OrigTo... 阅读全文
posted @ 2015-12-16 22:19 wales.song 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 作为gen_server启动初始化时注册钩子函数:名字为local_send_to_resource_hook,函数为process_command/3process_command(From, To, Packet):提供kill、showlh、setlh、help命令,可远程节点远程利用erla... 阅读全文
posted @ 2015-12-15 22:39 wales.song 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 作为gen_server启动,作为pg2模块的封装pg2这个模块实现了进程组的功能。例如进程组的名称为test,而且有一系列进程位于组内,可能这些进程位于不同的节点上,都可以成为test的成员。不能够直接向test发送消息,但是通过方法get_members/1 和 get_local_member... 阅读全文
posted @ 2015-12-15 21:57 wales.song 阅读(162) 评论(0) 推荐(0) 编辑
摘要: ejabberd_hooks作为ejabberd_sup的子进程以gen_server启动首先初始化创建hooks(ets)表,ejabberd_hooks作为系统的钩子server,注册一系列的方法到hooks里面,方便程序调用注册方法为:add(Hook, Host, Module, Funct... 阅读全文
posted @ 2015-12-15 21:51 wales.song 阅读(202) 评论(0) 推荐(0) 编辑