默认
发表评论 2
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已解决] RainbowChat服务端MobileIMSDKServerX_mina.jar是否可直接替换XX_netty.jar
MobileIMSDKServerX_mina.jar 包是否可以直接替换MobileIMSDKServerX_netty.jar

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:RainbowChat
上一篇:[已回复] 如何用jetbrains 启动RainbowChatServer项目下一篇:[已回复] MobileIMSDK v3.3 demo运行求助

本帖已收录至以下技术专辑

推荐方案
评论 2
嗯嗯 看了mina和netty底层发消息的方式 他们确实是不一样的机制
签名: im好难搞啊
RainbowChat的服务端是基于MobileIMSDK的,而MobileIMSDK现在是支持基于MINA2和Netty4 共2个版本(详情请见:MobileIMSDK的详细介绍)。

而MobileIMSDK的MINA2和Netty4这2个版本,为了尽最大努力可以让开发者能自行决定和切换喜欢的NIO框架,在开放给开发者的API上几乎完全一样,所以基本可以放心切换。

不过,MobileIMSDK的MINA2和Netty4这2个版本在sendData这个方法上有一个小差异,下面的图里会告诉你。

MINA版MobileIMSDK的sendData方法:
[已解决] RainbowChat服务端MobileIMSDKServerX_mina.jar是否可直接替换XX_netty.jar_1.jpg

Netty版MobileIMSDK的sendData方法:
[已解决] RainbowChat服务端MobileIMSDKServerX_mina.jar是否可直接替换XX_netty.jar_2.jpg

可以看出:MINA版的sendData方法数据是否成功发出,是可以直接通过方法得到返回值的(true表示成功,false表示失败),而Netty版的方法没有直接返回值——因为这是Netty框架的API设计决定的,熟悉Netty的开发者就知道:Netty的api设计上就像其它支持异步特性的语言(比如nodejs)一样,这种方法是设计为异步返回结果的,所以你能看到Netty版的sendData方法的返回值是通过传入一个观察者实现的

综上:MobileIMSDK的MINA2和Netty4这2个版本只在sendData方法的返回值上,因为MINA和Netty框架的先天设计的不一样而有这个小小的差异,其它API完全一样,可放心切换!

补充一句:MobileIMSDK各端已经打好的稳定版jar包,在github的此目录下,自行下载之:https://github.com/JackJiang2011/MobileIMSDK/tree/master/dist
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部