• O5_426505
    了解作者
  • 135.3KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-01 11:35
    上传日期
什么是WebSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,客户端和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 Websocket使用和 HTTP 相同的 TCP 端口,可以绕过大多数防火墙的限制。默认情况下,Websocket协议使用80端口;运行在TLS之上时,默认使用443端口。其协议标识符为ws,如果加密使用wss,服务器网址为URL,如: ws://www.example.com/ wss://www.example.com/ Webscoket具有以下优点: 较少的控制开销:在连接创建后,服务器和客户端之间交换数据时,用于协议控制的数据包头部相对较小 更强的实时性:由于协议是全双工的,所以服务器可以
websocket-master.zip
内容介绍
### 什么是WebSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,客户端和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190107105658962.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZvbWluX3podQ==,size_16,color_FFFFFF,t_70) Websocket使用和 HTTP 相同的 TCP 端口,可以绕过大多数防火墙的限制。默认情况下,Websocket协议使用80端口;运行在TLS之上时,默认使用443端口。其协议标识符为ws,如果加密使用wss,服务器网址为URL,如: ``` ws://www.example.com/ wss://www.example.com/ ``` Webscoket具有以下优点: * 较少的控制开销:在连接创建后,服务器和客户端之间交换数据时,用于协议控制的数据包头部相对较小 * 更强的实时性:由于协议是全双工的,所以服务器可以随时主动给客户端下发数据 * 保持连接状态:与HTTP不同的是,Websocket需要先创建连接,这就使得其成为一种有状态的协议,之后通信时可以省略部分状态信息。而HTTP请求可能需要在每个请求都携带状态信息(如身份认证等) * 更好的二进制支持:Websocket定义了二进制帧,相对HTTP,可以更轻松地处理二进制内容 * 更好的压缩效果:相对于HTTP压缩,Websocket在适当的扩展支持下,可以沿用之前内容的上下文,在传递类似的数据时,可以显著地提高压缩率 ### OkHttp WebSocket使用 引用okhttp库 ``` implementation 'com.squareup.okhttp3:okhttp:3.12.1' ``` 初始化okhttp,创建request,并开始连接websocket ``` client = new OkHttpClient.Builder() .writeTimeout(5, TimeUnit.SECONDS) .readTimeout(5, TimeUnit.SECONDS) .connectTimeout(10, TimeUnit.SECONDS) .build(); request = new Request.Builder().url(url).build(); client.newWebSocket(request, createListener()); ``` createListener创建相关监听事件 ``` private WebSocketListener createListener() { return new WebSocketListener() { @Override public void onOpen(WebSocket webSocket, Response response) { super.onOpen(webSocket, response); Log.d(TAG, "open:" + response.toString()); mWebSocket = webSocket; } @Override public void onMessage(WebSocket webSocket, String text) { super.onMessage(webSocket, text); } @Override public void onMessage(WebSocket webSocket, ByteString bytes) { super.onMessage(webSocket, bytes); } @Override public void onClosing(WebSocket webSocket, int code, String reason) { super.onClosing(webSocket, code, reason); } @Override public void onClosed(WebSocket webSocket, int code, String reason) { super.onClosed(webSocket, code, reason); } @Override public void onFailure(WebSocket webSocket, Throwable t, Response response) { super.onFailure(webSocket, t, response); } }; } ``` 发送消息,WebSocket 提供了两个方法,一个直接发送字符串,一个发送二进制数据 ``` mWebSocket.send(text); mWebSocket.send(byteString); ``` 简单的websocket已经搭建好,详细代码在[github](https://github.com/fomin-zhu/websocket.git)上,后续还会在跟进
评论
    相关推荐
    • pubsub:创建自己的PubSub客户端和服务器Websocket
      创建自己的PubSub客户端和服务器Websocket 客户 const pubSub = new PubSubClient ( 'ws://localhost:3001' , { connect : true , reconnect : true , } ) const topicName = 'abc' pubSub . subscribe ( ...
    • WebSocket服务器
      WebSocket服务器 该存储库包含一个简单的多客户端Web套接字服务器。 它显示了如何构建服务器和安装Python,创建虚拟环境,运行服务器以及打开3个并发客户端。 请参阅生成脚本或说明的文件夹 如何运行服务器 启用...
    • websocket服务器.rar
      websocket服务器.rar
    • WebSocketServer:WebSocket服务器
      WebSocket服务器 WebSocketServer演示
    • 易语言websocket服务器
      易语言websocket服务器源码系统结构:握手包处理,生成握手参数列,创建返回握手包,返回数据包处理,接收数据包解码,高级截取文本,取sha1,切片,ord,字节集到十六进制,十六进制到字节集,取十
    • WebSocketServer:WebSocket服务器
      WebSocketServer WebSocket服务器 1.服务器
    • WebSocket测试服务器
      这是一个简单版的WebSocket测试服务器,有带mask以及不带mask两个版本。可以做测试使用,测试会将发起端发送的数据踢回来,端口号以及IP说明文档里面会有,希望能方便您使用!
    • eps8266 nodemcu+lua用websocket+nodejs服务器websocket连接阿里云服务器
      刷入固件nodmcu,使用lua模块构建websocket客户端连接上,阿里云服务器,阿里云服务器用Nodjs建立服务器websocket。控制端浏览器页面用js建立 websocket; esp8266和控制端网页 同时连接nodjs服务器。即可使用外网...
    • 易语言websocket服务器
      易语言websocket服务器源码,websocket服务器,握手包处理,生成握手参数列,创建返回握手包,返回数据包处理,接收数据包解码,高级截取文本,取sha1,切片,ord,字节集到十六进制,十六进制到字节集,取十进制,取数值,utf8到...
    • rippled-ws-client-pool:具有故障转移和运行状况检查的XRPL(波纹)多服务器Websocket客户端
      客户端自动故障转移,使用websocket的运行状况监视波纹(XRPL)客户端。 一个开发GUI /调试仪表板/执行,可以发现(池实现开始行〜480)。 您可以在看到它的运行情况 依存关系 ( ) 在非浏览器环境中运行时的 可以...