idoubs 注册逻辑 学习笔记

idoubs的注册逻辑主要集中在ios-ngn-stack的NgnSipService中,特别是registerIdentity方法。该方法在程序启动的特定阶段如queryConfigurationAndRegister、onNetworkEvent和onRegistrationEvent中被调用。queryConfigurationAndRegister在程序加载后执行注册,onNetworkEvent在网络状态变化时触发,onRegistrationEvent则是直接执行注册操作。
摘要由CSDN通过智能技术生成

idoubs工程中嵌入了ios-ngn-stack工程(即Doubango),所以较底层的功能都在ios-ngn-stack中实现,而idoubs中主要实现软件的UI,通过实例化ios-ngn-stack中类以实现相关功能。

注册逻辑的实现代码所在位置:ios-ngn-stack工程 → Classes → common → services → impl → NgnSipService.h / NgnSipService.mm

点开NgnSipService.mm可以在其中找到诸如名为“registerIdentity”、“unregisterIdentity”等方法,从其名字就可以读出功能,最重要的便是registerIdentity这个方法了,它就是注册功能的具体实现的底层代码所在,有兴趣的开发者可以详细读下,在这里就不做介绍了。

然后用Xcode搜索一下“registerIdentity”,有很多结果,但绝大部分我们不用关心,因为其是出现在ios-ngn-stack工程中的。看到最后有三个结果出现在了idoubs2AppDelegate.mm文件中,从名字就可以断定,这个文件就是idoubs应用的程序委托文件,即可以理解为程序的开始。分别点击这三个条目可以看到registerIdentity方法分别出现在“queryConfigurationAndRegister”、“onNetworkEvent”和“onRegistrationEvent”方法中,下面对三者进行一一介绍:

  • queryConfigurationAndRegister:该方法在application:didFinishLaunchingWithOptions:方法中,也就是说程序加载完毕后会进行一次注册
  • onNetworkEvent:该方法在application:didFinishLaunchingWithOptions:方法中被注册为”通知启动方法“,即当获取到名为”kNgnNetworkEventArgs_Name“的通知时调用onNetworkEvent方法,这个通知会在网络连接状态改变的时候发出。所以,当成功连接到某网络、断开连接、开启3G等时刻会进行注册。
  • onRegistrationEvent:和onNetworkEvent相似,onRegistrationEvent在application:didFinishLaunchingWithOptions:方法中也被注册为”通知启动方法“,当获取到名为”kNgnRegistrationEventArgs_Name“的通知时调用该方法。这是”赤裸裸“的注册方法,即完成最基本的注册功能,所以如果想要在代码中加入注册功能,只要发出名为kNgnRegistrationEventArgs_Name的通知即可。
以上简单介绍了一下idoubs的注册逻辑,很浅显很粗糙,希望对大家有帮助,也希望和大家多多交流!


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值