默认
发表评论 9
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
请教局域网内一设备推送数据给其他平板,要保证数据完整、不丢失的办法
阅读(43127) | 评论(9 收藏 淘帖 1
神秘人  发表于 6 年前 倒序浏览 |阅读模式
需求:请问安卓设备都连在同一个局域网中,一个设备要给所有设备发送消息,又要保证数据的完整性,数据量可能会比较大。

环境:几个平板设备连接到同一个路由器里面,一个平板要把查询的数据发送到其他平板上,必须保证消息的完整,数据不能丢失,数据量也可能会比较大,改怎么实现呢?

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

标签:推送技术
上一篇:京东京麦商家开放平台的消息推送架构演进之路下一篇:[已解决] 同一台服务器MobileIMSDK通过内网路由器端口映射地址无法推送
推荐方案
评论 9
回答我几个问题:
1)大概有多少设备?
2)数据量有多大?大致估算一下;
3)实时性要求很高吗?

另外,你这具体是应用在什么业务场景 下的?
引用:JackJiang 发表于 2018-01-10 12:29
回答我几个问题:
1)大概有多少设备?
2)数据量有多大?大致估算一下;


1.大概有7-10个设备
2.数据量10k以内
3.实时性在5-10s以内

我们这个是用在同一个局域网之内,把本机设备数据共享给其他设备,要保证其他设备螚完整收到数据,数据是json格式的,还要传图片给每个设备,实时性3-10s以内最好
引用:12345678 发表于 2018-01-10 12:48
1.大概有7-10个设备
2.数据量10k以内
3.实时性在5-10s以内

数据发送的频率有多高?每隔几秒就发送?
5 楼: 12345678 Lv.1 6 年前 来自手机 | 只看该作者
数据是手动点击发送处理的,意思就是发送频率不确定
引用:12345678 发表于 2018-01-10 13:13
数据是手动点击发送处理的,意思就是发送频率不确定

哦,是人手工点击发送是吧。

这到底是做什么样的功能?数据丢包了会有什么影响吗?
你最好说说你这到底是用在什么样的场景、什么样的应用下,不然没有办法给到你最佳建议
引用:JackJiang 发表于 2018-01-10 14:03
哦,是人手工点击发送是吧。

这到底是做什么样的功能?数据丢包了会有什么影响吗?

是这样的,我们需要几台平板连在同一个局域网内,局域网可能不连接外网,一个平板需要采集用户基本信息,比如身份证信息,头像,及各种设备的体检数据用json的格式传给其他在同一个局域网下的平板,其他平板也会采集体检数据共享给其他平板,比如平板A采集体温,平板B采集血压,平板C采集心电,那么他们的数据需要相互传递,使得平板A、B、C都有用户的体温、血压、心电的数据。

现在的做法是平板A用udp发自己局域网ip给平板B、C,   B、C收到广播过来的ip地址后,用tcp把自己需要发送的数据用tcp发送给获取到的ip地址,功能是实现了,但是一直有个问题,如果在局域网中连接的设备太多后(10台左右),udp丢失率太大了,这样很多次都可能收不到数据,有没有什么比较好的思路或者办法来解决这个问题
首先,UDP丢包是因为你没有丢包保证算法,你可以去研究一下MobileIMSDK即时通讯框架,把它源码下载下来看看,这些都做的很健壮了。

另外,架构上来说,我建议设立一个中继服务器,也就是无论是哪个平台,它所采集的数据只会主动发给中继服务器,发完成再实时通知其它平板,其它平板再自已立即或者定时的方式从中继服务器上拉取。
这样进行拆分后,整个架构既清晰又简单,关键是可靠多了(总结就是:UDP实时指令+http短连接相结合)。不然,大量的数据在网络中流转,先不说复杂不复杂,可靠性很是问题。
引用:JackJiang 发表于 2018-01-10 22:33
首先,UDP丢包是因为你没有丢包保证算法,你可以去研究一下MobileIMSDK即时通讯框架,把它源码下载下来看看 ...

中继服务器是什么?怎么用?网上都收不到
引用:12345678 发表于 2018-01-11 19:59
中继服务器是什么?怎么用?网上都收不到

就是中转服务器,一样的意思。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部