ejabberd源码分析及开发系列(2) router模块分析

router模块是xmpp 消息包在每个节点上的主router。它根据每个消息包的目的域对消息包进行路由。该模块有两张表,一个是全局表,一个是本地表。首先根据消息包的目的地部分去搜索本地表, 如果找到的话,就将该消息包路由到相应的本地进程,如果没有找到,就接着搜索全局表并路由到相应的ejabberd节点或者进程。如果在两张表都没有找到的话,就发送到S2S manager。 待续

时间: 2024-10-14 03:04:03

ejabberd源码分析及开发系列(2) router模块分析的相关文章

ejabberd源码学习——方法注册模式

什么叫方法注册模式? 简言之,就是在方法被调用之前,先将方法名与调用此方法的触发条件的关键字建立一种映射关系,当指定的触发条件成立时,相应的方法则将会被调用.称之为方法注册模式,实乃一家之言,关键囿于人懒,从而书读得少,代码写得寡.闲话休谈,待入正题. 在学习ejabberd源码(版本14.07)中,发现通过配置表就可以使得某些模块启用或不启用,相当灵活,其主要是通过利用第一段所说的方法注册模式来实现.可以发现很多mod_xxx模块的start方法中都有下面两个方法的调用: gen_iq_han

Silverlight管理系统源码(用于开发ERP、OA、CRM、HR、进销存、财务等系统之用)

Silverlight大型管理系统源代码(支持创建ERP.OA.CRM.HR.进销存.财务等系统之用) 可用于开发以下系统 SilverlightERP SilverlightCRM SilverlightHR Silverlight财务软件 Silverlight管理系统 SilverlightOA 由于产品对外保密,所以界面和试用请联系北京动点飞扬咨询,提供完整源代码和数据库.开发文档 QQ:372900288 电话:13911652504 Silverlight管理系统源码(用于开发ERP

Apache Spark源码走读之5 -- DStream处理的容错性分析

欢迎转载,转载请注明出处,徽沪一郎,谢谢. 在流数据的处理过程中,为了保证处理结果的可信度(不能多算,也不能漏算),需要做到对所有的输入数据有且仅有一次处理.在Spark Streaming的处理机制中,不能多算,比较容易理解.那么它又是如何作到即使数据处理结点被重启,在重启之后这些数据也会被再次处理呢? 环境搭建 为了有一个感性的认识,先运行一下简单的Spark Streaming示例.首先确认已经安装了openbsd-netcat. 运行netcatnc -lk 9999 运行spark-s

[分享]错误“应用程序Xcode的这个版本不能与此版本的OS X配合使用”以及Mac源码和IOS开发资料分享

??[分享]错误"应用程序Xcode的这个版本不能与此版本的OS X配合使用"以及Mac源码和IOS开发资料分享 安装Xcode时,出现"应用程序Xcode的这个版本不能与此版本的OS X配合使用"错误如下: 解决方案是: /system/libary/coreservice/SystemVersion.plist中的两个10.10为10.10.5 修改过程会提示无权限修改,要不要建立副本,点击提示框中的"复制"按钮,存到桌面上. 点击一个文件右

Ubuntu编译源码搭建PHP开发环境

准备源码: 1.mysql的源码:mysql-5.5.15.tar.gz 2.apache的源码:httpd-2.2.19.tar.gz 3.php的源码:php-5.3.6.tar.gz 第一步,安装MySql groupadd mysql                                添加一个mysql用户组useradd -g mysql mysql                  添加一个mysql到用户,此用户属于mysql组 tar -xzvf mysql-5.5.

群控云控源码二次开发定制

群控云控源码二次开发定制系统介绍:群控系统是在windows系统下运行的,具有操作简单,运行稳定,升级方便,功能丰富等优点,系统同时可以管理大量wei信帐号,一号一机,安全稳定,不容易封号主要功能:通过Android自动化控制集成系统,把多个手机操作界面直接映射到电脑显示器,实现一台电脑来控制多部手机操作.批量发朋友圈,批量wei信聊天,自动化批量加好友,便捷智能,稳定防封号.群控系统介绍实时群控 支持一台电脑控制管理15-300部手机,电脑画面和手机屏幕实时同步操作自动营销电脑一键实现多部手机

ImageView的源码解读,以及几种ScaleType的分析

前言 ImageView是android开发中非常常用的一种控件,在显示图片时,我们可以直接拿来用,也可以根据使用场景,结合几种不同的显示方式ScaleType,来对显示的图片进行图片缩放规则的定制. 实例分析ScaleType可见文章后半部分 源码分析 ImageView直接继承于View,路径是android.widget.ImageView. 构造函数如下: public ImageView(Context context, @Nullable AttributeSet attrs, in

游戏开发入门500vip全套源码下载游戏开发概述

1.游戏机发展500vip全套源码下载dsluntan.com 20世纪70年×××始 首款主机magnavox odysse80年代 红白机80-90年代 各类非FC主机(PS,NDS等) PC单机游戏90年代-2000年 局域网对战游戏2000年后 大型多人游戏 页游 手游现在 VR,AR ..2.游戏是如何开发出来的,开发流程是什么? 原始的游戏比较粗糙,内容也很少,一般就一个人开发,美术与策划都由自己完成(建议看看<doom启示录>). 随着游戏逐渐变得复杂,需要多人去合作完成,分工也

Android IntentService源码理解 及 HandlerThread构建消息循环机制分析

前言:前面写了Handler的源码理解,关于Handler在我们Android开发中是到处能见到的异步通信方式.那么,在Android原生里,有那些也有到了Handler机制的呢?有很多,比如我们今天所要理解分析的IntentService就使用到了Handler.接下来,我们来深入了解一下. HandlerThread: IntentService使用到了Handler+HandlerThread构建的带有消息循环的异步任务处理机制,我们先简单看一下HandlerThread是如何工作的吧.