背景:
公司开发一个笔记类App, 现在添加了网页端。
移动端理论上是可以离线使用的,没有网络时就将内容一直保存在本地,有网络时再将数据同步到服务器。
网页端和移动端可以同时登陆,这样就涉及到了两边编辑同一条内容会发生冲突的问题。
冲突的解决不是问题的重点,就不提了。
重点是网页端修改的内容该如何及时同步到移动端。原本我是希望移动端能每过15秒向服务端发送一次请求,看有没有需要更新的内容。
但是产品同学说这样不够好,有道云笔记的 PC客户端 和 网页端 之间是可以做到数据实时同步的,我看了一下有道的http头,发现有道云笔记采用的是keep-alive
长连接做到实时更新数据的。
然而我发现有道云笔记的App并没有做到实时同步数据,也就是这种方法并没有想象中那样方便和优秀。
公司服务端采用的是 https.
问题:App实现http长连接技术上可行吗?有必要吗?有哪些优缺点?
socket.io
啊 有各个语言的sdk实时性,轮询还是存在延迟,延迟时间为轮询周期
流量,轮询的流量太大了,移动端很重视这个东西。
可以用socket长连接,实时性和连接的状态都能得到很好的保证,只需要按时发送一个socket心跳报激活连接状态就好,对于流量的消耗微乎其微.
无论HTTP连接还是socket连接,都不会是实时的,只是在完善的更新策略下让用户感觉到是“实时更新”了而已,http轮询、socket、推送,都可以实现,看你们产品需求策略了。跟https无关
没有必要长连接啊 你现在的需求是网页端修改内容 然后同步到移动端 你在移动端再请求一次数据不就可以了吗 像印象笔记都是这样实现的
1.轮询时效性不好,还占用带宽资源
2.可以使用websocket,实时监听
3.可以试试连接池
可以试试MQTT这种长连接方案,不过长连接比较消耗服务器资源,需要跟后台RD确认