今天和大家聊聊Freeswitch的mod_erlang_event模块

前段时间研究erlang语言,所以对于freeswitch的可以成为erlang的一个节点,从而进行相互通信。

这里我就和大家分享下我对此模块的心得。

 

首先说说此模块的编译,在默认环境下次模块不会被编译,只有当你的主机安装了erlang vm时,再通过./confingure时,产生的配置文件才会把mod_erlang_event模块进行编译。

但是这还不够,你还需要在目录下的module.config的mod_erlang_event进行取消注释,这才会在编译的时候成功编译。

 

在说说此模块的加载,加载此模块时,此模块模块接收所有的event消息(event机制可以查看以前的文章),并读取mod_erlang_event.conf配置文件,读取主机名称、节点名称、通信名称,(注:thisalivename为erlang通信的进程名称)读取完成后把此信息设置的empd进程(此进程erlang运行时进程),再监听所有来自4369端口的连接请求,(绑定socket的ip也可以自行配置,默认为0.0.0.0(表示接受所有的ip)),自此此模块的启动则基本完成。

 

在说说模块主动外连节点,也就是指erlang的outbound接口。通过outbound接口向外节点发起连接时,首先会检查是否存在和向发起连接的节点的连接存在,如果和对端节点的连接不存在,则创建新的连接。当创建新的连接时,会调用erlang的erl接口模块的ei_connect接口,向对端节点发起一次连接(相当于erlang进程之间的ping操作),连接成后在则在erlang vm的net_kernel模块对此连接进行管理(其中包含定时器等等,这里不再描述),创建了一个连接后,fs为每一个连接创建了一个线程进行管理(目的为:防止网络通信的低速影响系统的运行速度),此listeners线程则对于接受到的event,通过ei接口发送给远端接口。

 

自此差不多描述了fs和erlang远端节点进行连接的大部分内容,如有不全之处,请自己结合代码和文档深入研究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值