请选择 进入手机版 | 继续访问电脑版

默认
发表评论 6
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 请问MobileIMSDK同时支持TCP、UDP两种协议,该怎么理解?
新版同时支持TCP、UDP两种协议,两种是如何自由切换的呢?还是一条消息用两个协议发了再去重?假如一条消息内容过长,UDP发送失败,自动切换TCP发送?还是其他方式?

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

上一篇:[已回复] MobileIMSDK实现的多端消息同步时,离线消息怎么处理好?下一篇:[已回复] 在K8S+springcoud中如何部署MobileIMSDK?

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

推荐方案
评论 6
两种协议,服务端在运行时可以同时并存运行,但客户端在开发时,2选一(两种协议版本API全部一样,只需要对jar包覆盖替换,代码一行都不需要改)。

客户端这样做,是为了不让代码复杂化,但如果一定要说,想运行时同时支持2种协议,也可以做,那就把两种协议代码合并一个工程,包名不要冲突,就行了。
引用:JackJiang 发表于 2021-10-15 11:15
两种协议,服务端在运行时可以同时并存运行,但客户端在开发时,2选一(两种协议版本API全部一样,只需要对 ...

哦,也就是实际项目只用了一种,只是代码都有,想切换就切换代码
引用:wxd5327 发表于 2021-10-15 13:30
哦,也就是实际项目只用了一种,只是代码都有,想切换就切换代码

对的
这其实就是策略模式的一个实现了,虽然还没看过源码,但Jack Jiang大佬应该是把这一系列的策略算法都接口化了,
TCP、UDP、WebSocket都是这个策略接口的具体实现,相互之间可以替换,MobileIMSDK同时只与其中一个具体的策略类进行交互。
开发者可以了解每种策略的功能和不同,从而选择适合自己项目的策略使用。
引用:椎锋陷陈 发表于 2021-10-18 11:16
这其实就是策略模式的一个实现了,虽然还没看过源码,但Jack Jiang大佬应该是把这一系列的策略算法都接口化 ...

对的。其实要玩的复杂,很容易的,只是我认为读我SDK源码的,用来学习研究的人很多,所以我想保持尽可能地简洁
引用:JackJiang 发表于 2021-10-18 14:47
对的。其实要玩的复杂,很容易的,只是我认为读我SDK源码的,用来学习研究的人很多,所以我想保持尽可能 ...

是啊,本身做成SDK的话,代码的可读性就很重要。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部