zl程序教程

您现在的位置是:首页 >  其他

当前栏目

websocket的基础知识

2023-09-27 14:22:12 时间

一.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)(特地人群)::多人聊天,发布订阅