`
jinnianshilongnian
  • 浏览: 21514067 次
  • 性别: Icon_minigender_1
博客专栏
5c8dac6a-21dc-3466-8abb-057664ab39c7
跟我学spring3
浏览量:2420553
D659df3e-4ad7-3b12-8b9a-1e94abd75ac3
Spring杂谈
浏览量:3010285
43989fe4-8b6b-3109-aaec-379d27dd4090
跟开涛学SpringMVC...
浏览量:5640616
1df97887-a9e1-3328-b6da-091f51f886a1
Servlet3.1规范翻...
浏览量:260243
4f347843-a078-36c1-977f-797c7fc123fc
springmvc杂谈
浏览量:1597965
22722232-95c1-34f2-b8e1-d059493d3d98
hibernate杂谈
浏览量:250375
45b32b6f-7468-3077-be40-00a5853c9a48
跟我学Shiro
浏览量:5860625
Group-logo
跟我学Nginx+Lua开...
浏览量:702890
5041f67a-12b2-30ba-814d-b55f466529d5
亿级流量网站架构核心技术
浏览量:785763
社区版块
存档分类
最新评论

6.发送和接收数据——WebSocket协议翻译

 
阅读更多

6.1.发送数据

为了_发送一个WebSocket消息_,其中包括WebSocket连接之上的/data/,端点必须执行以下步骤。

  1. 端点必须确保WebSocket连接处于OPEN状态(比较 4.1节和4.2.2节)。如果在任何时刻WebSocket连接的状态改变了,端点必须终止以下步骤。

  2. 端点必须封装/data/到定义在5.2节的一个WebSocket帧。如果要发送的数据太大或如果在端点想要开始发生数据时数据作为一个整体不可用,端点可以按照5.2节的定义交替地封装数据到一系列的帧中。

  3. 第一个包含数据的帧的操作码(帧-opcode)必须按照5.2节的定义被设置为适当的值用于接收者解释数据是文本还是二进制数据。。

  4. 包含数据的最后帧的FIN位(帧-fin)必须按照5.2节的定义设置位1。

  5. 如果数据正由客户端发送,帧必须按照5.3节的定义被掩码。

  6. 如果任何扩展(第9章)已经协商用于WebSocket连接,额外的考虑可以按照这些扩展定义来应用。

  7. 已成形的帧必须在底层网络连接之上传输。

6.2.接收数据

为了接收WebSocket数据,端点监听底层网络连接。传入数据必须按照5.2节的定义解析为WebSocket帧。如果接收到一个控制帧(5.5节),帧必须按照5.5节定义的来处理。当接收到一个数据帧(5.6节)时,端点必须注意5.2节由操作码(帧-opcode)定义的数据的/type/。这个帧的“应用数据”被定义为消息的/data/。如果帧由一个未分片的消息组成(5.4节),这是说_已经接收到一个WebSocket消息_,其类型为/type/且数据为/data/。如果帧是一个分片消息的一部分,随后数据帧的“应用数据”连接在一起形成/data/。当接收到由FIN位(帧-fin)指示的最后的片段时,这是说_已经接收到一个WebSocket消息_,其数据为/data/(由连续片段的“应用数据”组成)且类型为/type/(分配消息的第一个帧指出)。随后的数据帧必须被解释为属于一个新的WebSocket消息。

扩展(第9章)可以改变数据如何读的语义,尤其包括什么组成一个消息的边界。扩展,除了在负载中的“应用数据”之前添加“扩展数据”外,也可以修改“应用数据”(例如压缩它)。

服务器必须按照5.3节的定义为从客户端接收到的数据帧移除掩码。

0
1
分享到:
评论

相关推荐

    websocket-master——1233.zip

    而WebSocket允许服务器和客户端进行全双工通信,意味着两者可以同时发送和接收数据,极大地提高了实时性。 WebSocket协议在IETF(互联网工程任务组)的标准文档RFC 6455中定义。它的主要特点是建立持久连接,并且...

    C#WebSocket客户端及服务端Demo源代码

    4. 接收数据:使用`ReceiveAsync`异步接收服务器的数据,持续监听直到连接关闭。 5. 关闭连接:当完成通信后,调用`CloseAsync`方法关闭连接。 **四、源代码分析** 在提供的压缩包中,有两个主要的文件——`...

    Node.js-Adventure–简单的WebSocket客户端

    WebSocket客户端的实现可以是复杂的,但基础原理始终保持一致,即建立连接、发送和接收数据,以及处理连接状态的变化。 总的来说,Node.js结合WebSocket提供了一种强大而灵活的方式,用于构建实时、双向通信的应用...

    SpringWebSocket Demo

    - `WebSocketController.java`:处理WebSocket连接的控制器,实现连接建立、关闭、发送和接收消息的方法。 - `MessageHandler.java`:消息处理器,用于处理来自客户端的STOMP消息。 - `Frontend资源`:包含HTML、CSS...

    rtsp地址转websocket去网页显示

    这就引出了我们的主角——WebSocket。 WebSocket是一种在客户端和服务器之间建立长连接的协议,能够提供双向通信,非常适合实时数据传输,如视频流。将RTSP流转换为WebSocket流,可以让用户在网页上直接观看实时...

    websocket-api.jar

    WebSocket API是Java编程语言中用于实现WebSocket协议的一个接口库,主要由JSR 356规范定义。WebSocket是一种在客户端和服务器之间建立长连接的协议,允许双方进行双向通信,即服务器可以主动向客户端推送数据,而不...

    Android 实现WebSocket长连接

    最近项目中引入了实时接收服务器数据的功能,考量后通过WebSocket长链接来实现。 1、建立在 TCP 协议之上,服务器端的实现比较容易。 2、与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 ...

    jmeter测试websocket接口1

    - **Websocket协议**:Websocket协议是一种双向通信协议,允许客户端和服务端在建立连接后主动发送数据。它类似于TCP协议,需要首先建立连接才能进行通信。与HTTP不同的是,Websocket只需要一次HTTP请求就能建立连接...

    socket.io不错的websocket

    标签中的“源码”意味着可能涉及到了Socket.IO的内部实现或自定义扩展,这通常需要深入理解Node.js和WebSocket协议。学习源码有助于开发者更好地调试和定制功能。 而“工具”则表明Socket.IO是一个实用的开发工具,...

    websocket_FWD.rar

    考虑到WebSocket协议允许两种帧类型——文本帧和二进制帧,处理函数需要能够正确区分并处理这两种帧。 对于错误处理和异常安全,需要确保在出现错误时,例如网络中断或无效数据,能够适当地关闭连接并清理资源。...

    C#使用WebSocket实现在线聊天功能

    总之,使用C#和WebSocket构建在线聊天系统是一个涉及网络编程、多线程处理和数据传输的过程。通过理解WebSocket协议、掌握C#的相关API以及设计合理的通信逻辑,我们可以创建出高效、稳定的在线聊天应用。在这个过程...

    kotlin-rxokhttp-websocket,基于okhttp和gson的kotlin和rxkotlin的websocket绑定.zip

    在IT行业中,Websocket是一种在客户端和服务器之间建立持久连接的协议,允许双方实时、双向地交换数据。本文将深入探讨基于Kotlin、RxJava/RxKotlin以及OkHttp和Gson实现的Websocket库——kotlin-rxokhttp-websocket...

    JMeter安装包以及JMeterWebSocketSampler-1.0.2-SNAPSHOT和依赖包

    在这个压缩包中,我们包含了JMeter的安装包以及一个专门用于WebSocket协议测试的插件——JMeterWebSocketSampler-1.0.2-SNAPSHOT。 首先,让我们详细了解JMeter的基本知识。JMeter是Apache软件基金会开发的一款纯...

    jmeter5.0 r1840935 websocket插件

    这些jar包通常包含了处理WebSocket协议、网络通信、线程管理等相关功能的类库,以便JMeter能够正确地模拟WebSocket连接并发送和接收数据。 **知识点详解** 1. **Apache JMeter**: JMeter是一个开源的性能测试工具...

    javaee7 标准websocket api

    JavaEE 7是Java企业版的一个重要版本,它引入了许多新特性和改进,其中就包括对WebSocket协议的标准化支持。WebSocket是一种在客户端和服务器之间建立持久连接的协议,允许双方进行全双工通信,即数据可以同时双向...

    基于websocket的java社交平台的软件,webchat

    WebSocket协议定义了一种在单个TCP连接上进行全双工通信的协议。相比于HTTP协议,WebSocket提供了一种更有效的方式来实现长连接,避免了频繁的请求和响应交互,降低了网络负载。 在Java中,Spring Framework提供了...

    毕业设计聊天室、websocket、socket.io设计源码.zip

    它通过建立持久连接,使得消息能够在用户之间即时发送和接收,提供了一种流畅的用户体验。WebSocket协议的握手过程由HTTP协议发起,然后升级到WebSocket连接,这样确保了与现有基础设施的兼容性。 接下来,Socket....

    Amp-websocket-client.zip

    在当今互联网技术日新月异的时代,WebSocket协议作为一种双向通信的协议,已经成为实时应用的首选。它为Web应用程序提供了低延迟、高效率的数据传输方式,使得服务器与客户端可以进行实时、双向的数据交换。而本文将...

    html5 支持的websocket小案例源代码

    Tomcat 7是第一个正式支持WebSocket的版本,因此,这两个jar包——catalina.jar和tomcat-coyote.jar,很可能是Tomcat服务器的核心组件,它们负责处理HTTP和HTTPS请求,以及WebSocket协议的解析和管理。 catalina....

    java基于websocket的聊天实例

    Java WebSocket 是一种在客户端和服务器之间建立长连接的协议,它允许双向通信,即服务器可以主动向客户端推送数据。在本实例中,我们将探讨如何利用Java实现基于WebSocket的聊天应用。 首先,我们要理解WebSocket...

Global site tag (gtag.js) - Google Analytics