多语言展示
当前在线:987今日阅读:167今日分享:16

websocket介绍

本篇文章将给大家介绍websocket相关的概念,让大家明白websocket是怎么工作的。
工具/原料

websocket

方法/步骤
2

关于SockJs。    SockJS 是 WebSocket 技术的一种模拟。SockJS 会 尽可能对应 WebSocket API,但如果 WebSocket 技术不可用的话,就会选择另外的通信方式协议。sockjs,对于低版本的ie等不支持websocket的浏览器,采用js模拟websocket对象的办法来实现兼容(其实也有轮询的情况)。

3

关于STOMP。    SockJS 为 WebSocket 提供了 备选方案。但无论哪种场景,对于实际应用来说,这种通信形式层级过低。下面看一下如何 在 WebSocket 之上使用 STOMP协议,来为浏览器 和 server 间的 通信增加适当的消息语义。(STOMP—— Simple Text Oriented Message Protocol——面向消息的简单文本协议)。    STOMP帧由命令,一个或多个头信息以及负载所组成。如下就是发送数据的一个STOMP帧:   SEND  destination:/app/room-message  content-length:20   {\'message\':\'Hello!\'}对以上代码分析:1.     SEND:STOMP命令,表明会发送一些内容;2.     destination:头信息,用来表示消息发送到哪里;3.     content-length:头信息,用来表示 负载内容的 大小;4.     空行;5.     帧内容(负载)内容

4

WebSocket、SockJs、STOMP三者关系。    简而言之,WebSocket 是底层协议,SockJS 是WebSocket 的备选方案,也是 底层协议,而 STOMP 是基于 WebSocket(SockJS) 的上层协议。1.     假设HTTP协议并不存在,只能使用TCP套接字来编写web应用,你可能认为这是一件疯狂的事情。2.     不过幸好,我们有HTTP协议,它解决了 web 浏览器发起请求以及 web 服务器响应请求的细节。3.     直接使 WebSocket(SockJS) 就很类似于 使用 TCP 套接字来编写 web 应用;因为没有高层协议,因此就需要我们定义应用间所发送消息的语义,还需要确保 连接的两端都能遵循这些语义。4.     同HTTP在TP套接字上添加请求-响应模型层一样,STOMP在 WebSocket之上提供了一个基于帧的线路格式层,用来定义消息语义。

推荐信息