WebSocket与STOMP介绍
来源:互联网 发布:华为数据 编辑:程序博客网 时间:2024/05/22 08:52
什么是websocket
推荐知乎上一篇通俗易懂的文章WebSocket 是什么原理?为什么可以实现持久连接?。
为什么要引入
http协议是无状态协议,即每次请求时都不知道前面发生的什么。而且请求只能由浏览器发起,服务器只能响应该请求,不能主动发送消息给浏览器。这种单向的协议显然在很多场景下是不适用的,比如消息推送,股票实时行情。在websocket之前,我们通常使用Ajax轮询服务器或者使用长轮询,这两种方式都极大消耗了服务端和客户端的资源。而使用websocket,我们只需要借用http协议进行握手,然后保持着一个websocket连接,知道客户端主动断开。相对于另外两种方式,websocket只发送了一次http请求,当服务器有数据时再向浏览器推送数据,减少了带宽的使用以及服务器CPU使用率。
Websocket、Http、TCP、Socket之间关系
HTTP、WebSocket 等应用层协议,都是基于 TCP 协议来传输数据的。
对于 WebSocket 来说,它必须依赖 HTTP 协议进行一次握手 ,握手成功后,数据就直接从 TCP 通道传输,与 HTTP 无关了。
Socket并不是一种协议,而是方便我们使用TCP/IP的一种封装,而 WebSocket 则不同,它是一个完整的 应用层协议,包含一套标准的 API 。
STOMP协议
STOMP即Simple (or Streaming) Text Orientated Messaging Protocol,简单(流)文本定向消息协议,它提供了一个可互操作的连接格式,允许STOMP客户端与任意STOMP消息代理(Broker)进行交互。STOMP协议
许多公司都提供了基于STOMP的服务器与客户端,若spring4开始支持的spring-websocket服务端,基于浏览器的stomp.js客户端
STOMP定义了客户端和服务器之间以Frame进行同行,Frame的格式为:
COMMANDheader1:value1header2:value2Body^@
COMMAND分为CONNECT、SEND、SUBSCRIBE、UNSUBSCRIBE、BEGIN、COMMIT、ABORT、ACK、NACK、DISCONNECT这几种。
COMMAND之后下一行紧跟着的是头部的键值对,之后加入一条空行,空行之后为body,即传递的消息实体。
- WebSocket与STOMP介绍
- stomp over websocket协议原理与实现
- WebSocket的两种简单实现,Html5与STOMP。
- STOMP Over WebSocket原文
- Spring websocket stomp
- STOMP-WebSocket中文文档
- WebSocket+STOMP+SockJS
- websocket 、stomp关系
- stomp与rabbitmq stomp插件
- Spring websocket over STOMP使用指南
- ANDROID WebSocket+STOMP 1.0版本
- WebSocket介绍与原理
- 搭建Spring4.1与Spring4.2 websock+stomp+activeMQ需要注意事项:spring4不同版本websocket差异
- STOMP协议介绍
- STOMP协议介绍
- Stomp Over Websocket的Spring实现
- Spring boot WebSocket stomp简单例子
- websocket 与Socket.IO介绍
- php 读正在写的文件
- Unicode编码转换最简单方法
- Leetcode 100. Same Tree
- CSS、JS 放置位置与前端性能的关系?
- Mysql 的日期类型:DATETIME和TIMESTAMP
- WebSocket与STOMP介绍
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- Genymotion解决无法下载镜像问题
- JS实现子元素scroll父元素容器不跟随滚动
- jupyter与spark kernel结合的notebook安装及使用
- 如何在SSH中创建一个定时器
- hdoj 5651 xiaoxin juju needs help 【组合数学】
- cmake编写CMakeLists
- kmalloc fail导致系统异常