websocket的基础知识
一.webSocket的概念
1.1 websocket
WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。
WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。
在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。
1.2 为何要用websocket
我们已经有了 HTTP 协议,为何还要使用websocket?
因为 HTTP 协议有一个缺陷:通信只能由客户端发起。比如:我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做不到服务器主动向客户端推送信息。这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦。我们只能使用"轮询":每隔一段时候,就发出一个询问,了解服务器有没有新的信息。最典型的场景就是聊天室。其中轮询的效率低,非常浪费资源(因为必须不停连接,或者 HTTP 连接始终打开)。
1.3 websocket与ajax的区别
执行流程:
1.浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。
2.当你获取 Web Socket 连接后,你可以通过 send() 方法来向服务器发送数据,并通过 onmessage 事件来接收服务器返回的数据。
以下 API 用于创建 WebSocket 对象: var Socket = new WebSocket(url, [protocol] );
1.4 websocket的api
参考地址:WebSocket的简单认识&SpringBoot整合websocket - QiaoZhi - 博客园
二. socket.js
1、是一个浏览器JavaScript库,提供了一个类似WebSocket的对象。
2、提供了一个连贯的跨浏览器的JavaScriptAPI,在浏览器和Web服务器之间创建了一个低延迟,全双工,跨域的通信通道
3、在底层SockJS首先尝试使用本地WebSocket。如果失败了,它可以使用各种浏览器特定的传输协议,并通过类似WebSocket的抽象方式呈现它们
4、SockJS旨在适用于所有现代浏览器和不支持WebSocket协议的环境。
三.stomp.js
1、STOMP Simple (or Streaming) Text Orientated Messaging Protocol
它定义了可互操作的连线格式,以便任何可用的STOMP客户端都可以与任何STOMP消息代理进行通信,以在语言和平台之间提供简单而广泛的消息互操作性
(归纳一句话:是一个简单的面向文本的消息传递协议。)
四 单播,组播,广播
1.单播(Unicast)::点对点,私信私聊
2.广播(Broadcast)(所有人):游戏公告,发布订阅
3.多播,也叫组播(Multicast)(特地人群)::多人聊天,发布订阅
相关文章
- Windows核心编程 第六章 线程基础知识 (上)
- Zookeeper 基础知识
- Nodejs进阶:crypto模块中你需要掌握的安全基础知识
- 计算机网络安全基础知识4:命令执行漏洞,危害极大,DVWA演示命令注入漏洞攻击网站,防御命令注入执行漏洞,low,medium,high,impossible
- Java核心技术卷I基础知识3.2 注释
- Java核心技术卷I基础知识3.6.6 码点与代码单元
- Java核心技术卷I基础知识3.8.4 确定循环
- 鸿蒙中级之 ListDialog (HarmonyOS鸿蒙开发基础知识)
- 鸿蒙开发之Button按钮有哪些类型,如何通过代码设置(HarmonyOS鸿蒙开发基础知识)
- 鸿蒙开发之如何响应Button点击事件(HarmonyOS鸿蒙开发基础知识)
- less基础知识总结
- 常用API基础知识
- 二分图前期基础知识
- Tensorflow 入门与实践(基础知识)-逻辑回归+多层感知机
- Spark基础知识总结和应用举例
- matplotlib常用基础知识