加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长资讯 > 评论 > 正文

OkHttp实现WebSocket长连接

发布时间:2021-04-07 09:55:35 所属栏目:评论 来源:互联网
导读:近老板又来新需求了,要做一个物联网相关的app,其中有个需求是客户端需要收发服务器不定期发出的消息。 内心OS: 这咋整呢?通过接口轮询?定时访问接口,有数据就更新? 不行不行,这样浪费资源了,还耗电,会导致很多请求都是无效的网络操作。 那就长连接呗?

近老板又来新需求了,要做一个物联网相关的app,其中有个需求是客户端需要收发服务器不定期发出的消息。

内心OS:

  • 这咋整呢?通过接口轮询?定时访问接口,有数据就更新?
  • 不行不行,这样浪费资源了,还耗电,会导致很多请求都是无效的网络操作。
  • 那就长连接呗?WebSocket协议好像不错,通过握手建立长连接后,可以随时收发服务器的消息。那就它了!
  • 怎么集成呢?正好前段时间复习OkHttp源码的时候发现了它是支持Websocket协议的,那就用它试试吧!

开淦!

WebSocket介绍

先简单介绍下WebSocket。我们都知道Http是处于应用层的一个通信协议,但是只支持单向主动通信,做不到服务器主动向客户端推送消息。而且Http是无状态的,即每次通信都没有关联性,导致跟服务器关系不紧密。

为了解决和服务器长时间通信的痛点呢,HTML5规范引出了WebSocket协议(知道这名字咋来的吧,人家HTML5规范引出的,随爸姓),是一种建立在TCP协议基础上的全双工通信的协议。他跟Http同属于应用层协议,下层还是需要通过TCP建立连接。

但是,WebSocket在TCP连接建立后,还要通过Http进行一次握手,也就是通过Http发送一条GET请求消息给服务器,告诉服务器我要建立WebSocket连接了,你准备好哦,具体做法就是在头部信息中添加相关参数。然后服务器响应我知道了,并且将连接协议改成WebSocket,开始建立长连接。

这里贴上请求头和响应头信息,从网上找了一张图:

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读