0

背景:
公司开发一个笔记类App, 现在添加了网页端。
移动端理论上是可以离线使用的,没有网络时就将内容一直保存在本地,有网络时再将数据同步到服务器。
网页端和移动端可以同时登陆,这样就涉及到了两边编辑同一条内容会发生冲突的问题。

冲突的解决不是问题的重点,就不提了。

重点是网页端修改的内容该如何及时同步到移动端。原本我是希望移动端能每过15秒向服务端发送一次请求,看有没有需要更新的内容。

但是产品同学说这样不够好,有道云笔记的 PC客户端 和 网页端 之间是可以做到数据实时同步的,我看了一下有道的http头,发现有道云笔记采用的是keep-alive长连接做到实时更新数据的。

然而我发现有道云笔记的App并没有做到实时同步数据,也就是这种方法并没有想象中那样方便和优秀。

公司服务端采用的是 https.

问题:App实现http长连接技术上可行吗?有必要吗?有哪些优缺点?

8个回答

1

socket.io 啊 有各个语言的sdk

1
  1. 实时性,轮询还是存在延迟,延迟时间为轮询周期

  2. 流量,轮询的流量太大了,移动端很重视这个东西。

1

可以用socket长连接,实时性和连接的状态都能得到很好的保证,只需要按时发送一个socket心跳报激活连接状态就好,对于流量的消耗微乎其微.

1

无论HTTP连接还是socket连接,都不会是实时的,只是在完善的更新策略下让用户感觉到是“实时更新”了而已,http轮询、socket、推送,都可以实现,看你们产品需求策略了。跟https无关

1

没有必要长连接啊 你现在的需求是网页端修改内容 然后同步到移动端 你在移动端再请求一次数据不就可以了吗 像印象笔记都是这样实现的

1

1.轮询时效性不好,还占用带宽资源
2.可以使用websocket,实时监听
3.可以试试连接池

0

可以试试MQTT这种长连接方案,不过长连接比较消耗服务器资源,需要跟后台RD确认

0

可以参考mqtt协议来实现长连接的需求
成熟的框架paho可以使用 , mqtt自带的心跳包机制和可选的qos等级能较大的成都上节约服务器的资源...
目前我们就是通过这个方案来实现的长连接通道, 效果不错

撰写答案