websoket

这篇具有很好参考价值的文章主要介绍了websoket。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

它与 http 协议一样,也是一种通讯协议

http 协议:

  • 作用:规范浏览器与服务器交互的一种标准。
  • 特点:
    • 每次浏览器与服务器之间进行交互都需要重复开启和断开连接
    • 请求只能由浏览器主动发送,服务器被动响应

websoket 跟它其实是一样的,websoket 就是http协议的其中一部分,正常的请求状态码是200,websoket的状态码是101

websoket 原理:

  • 很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。
  • 而比较新的技术去做轮询的效果是Comet。这种技术虽然可以双向通信,但依然需要反复发出请求。而且在Comet中,普遍采用的长链接,也会消耗服务器资源。
  • 在这种情况下,HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。

特点:

  • 较少的控制开销。在连接创建后,服务器和客户端之间交换数据时,用于协议控制的数据包头部相对较小。在不包含扩展的情况下,对于服务器到客户端的内容,此头部大小只有2至10字节(和数据包长度有关);对于客户端到服务器的内容,此头部还需要加上额外的4字节的掩码。相对于HTTP请求每次都要携带完整的头部,此项开销显著减少了。
  • 更强的实时性。由于协议是全双工的,所以服务器可以随时主动给客户端下发数据。相对于HTTP请求需要等待客户端发起请求服务端才能响应,延迟明显更少;即使是和Comet等类似的长轮询比较,其也能在短时间内更多次地传递数据。
  • 保持连接状态。与HTTP不同的是,Websocket需要先创建连接,这就使得其成为一种有状态的协议,之后通信时可以省略部分状态信息。而HTTP请求可能需要在每个请求都携带状态信息(如身份认证等)。
  • 更好的二进制支持。Websocket定义了二进制帧,相对HTTP,可以更轻松地处理二进制内容。
  • 可以支持扩展。Websocket定义了扩展,用户可以扩展协议、实现部分自定义的子协议。如部分浏览器支持压缩等。
  • 更好的压缩效果。相对于HTTP压缩,Websocket在适当的扩展支持下,可以沿用之前内容的上下文,在传递类似的数据时,可以显著地提高压缩率。

示例


			webSocke() {
				let that = this
							//发起连接
					let ws = new WebSocket("ws地址")
							//连接成功 
					ws.onopen = function(e) {
						console.log("链接成功", e)
						// 0: 请求未初始化
						// 1: 服务器连接已建立
						// 2: 请求已接收 接收到了响应头
						// 3: 请求处理中 正在下载响应体
						// 4: 请求已完成,且响应已就绪
						if(ws.readyState==1){
							ws.send(JSON.stringify("你好"))
						}
					};
					//接受错误
					ws.onerror = function() {
						console.log("链接失败")
					}
					// 接受和发送消息 的时候触发
					ws.onmessage = function(msg) {
						console.log("111111111111111111111")
							console.log(msg.data)
					}
			},
			// websend(){
			// 	let ws = new WebSocket("wss://shop.oxibar.cn/msg")

			// },

这是我自己写的实例,当然,这些东西在网上一挖一麻袋多嘞很

不中的话没我跟你们看看官方咋写的?废话不说啦,上代码

//WebSocket 发送和接收消息,通常在服务器发送一些数据时发生Message事件。服务器发送到客户端的消息可以包括纯文本消息,二进制数据或图像。无论何时发送数据,都会触发onmessage函数。
//此事件充当客户端对服务器的耳朵。每当服务器发送数据时,都会触发onmessage事件。
//以下代码段描述了接收服务器端发送过来的message消息。


connection.onmessage = function(e){
   var server_message = e.data;
   console.log(server_message);
}

// 创建WebSocket连接.
const socket = new WebSocket('ws://localhost:8080');
 
// 连接成功触发
socket.addEventListener('open', function (event) {
    socket.send('Hello Server!');
});
 
// 监听消息
socket.addEventListener('message', function (event) {
    console.log('Message from server ', event.data);
});
等等......

不写啦,再写官方的例子,就感觉我有毛病一样
其实就这么多文章来源地址https://www.toymoban.com/news/detail-426676.html

不过需要注意一点:

一定要保证最少敲一遍

一定要保证最少敲一遍

一定要保证最少敲一遍

@@@拜拜哦! 下次再说,有什么不懂的可以在评论区问我,我有时间的话一定会回消息的

到了这里,关于websoket的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#与西门子PLC通讯——手搓S7通讯协议

    本文将尝试从源码角度,使用Tcp/Ip的方式直接与西门子PLC进行交互通讯。 往期博客参考 C#与西门子PLC通讯——新手快速入门 C#与西门子PLC通讯——熟手快速入门 建议先看一下这两篇,了解预设背景。 知其然,知其所以然。 这篇文章,我们就尝试重复造一个轮子。通过对通讯

    2024年02月04日
    浏览(46)
  • RS-485 通讯协议简介

    与 CAN 类似,RS-485 是一种工业控制环境中常用的通讯协议,它具有抗干扰能力强、传输距离远的特点。RS-485 通讯协议由 RS-232协议改进而来,协议层不变,只是改进了物理层,因而保留了串口通讯协议应用简单的特点。 1 RS-485的物理层 从《CAN—通讯实验》章节中了解到,差分

    2024年02月05日
    浏览(43)
  • SPI总线通讯协议学习

    目录 什么是SPI 信号线 理解通讯原理 采样  SPI的推广 SPI是芯片与芯片之间的通讯,准确得说是 串行同步通讯 。既然都说了同步,那发送数据当然要和时钟线SCK配合才能发数据. 采用一主多从的模式,主机只有一个,而从机可以有若干个。     需要四条信号线:(SS(CS),SCK,MOSI,MOS

    2024年02月06日
    浏览(45)
  • Modbus通讯协议学习

    Modbus协议 莫迪康(施耐德电气) 1979年 PLC在1969年诞生 为解决PLC通讯问题而发表 为不同设备之间提供了一种通用的语言 Modbus协议是一种应用层的报文传输协议,RTU/ASCII/TCP Modbus RTU通讯协议 通讯功能:读数据,写数据 存储区: 输出线圈 输入线圈 输入寄存器 保持寄存器 ​

    2024年02月12日
    浏览(43)
  • 物联网常用通讯协议

    一、物联网通信协议分为两大类 1.接入协议: 一般负责子网内设备间的组网及通信 2.通讯协议: 主要是运行在传统互联网TCP/IP协议之上的设备通讯协议,负责设备通过互联网进行数据交换及通信。 二、物理层、数据链路层协议 1、远距离蜂窝 通信 (1)2G/3G/4G通信协议,分别指

    2024年02月10日
    浏览(58)
  • 轻量通讯协议 --- MQTT

    MQTT(Message Queuing Telemetry Transport) 是一种轻量级的消息传输协议,通常用于在物联网(IoT)和传感器网络中进行通信。它设计用于在低带宽、不稳定或高延迟的网络环境下传输数据,因此非常适用于连接设备之间的通信,尤其是在资源有限的环境中。 MQTT 的主要特点包括以下

    2024年02月08日
    浏览(25)
  • 【应用】OPC 通讯协议

    OPC 全称 OLE For Process Control,即用于控制过程的 OLE,是一个工业标准,管理该标准的国际组织是 OPC 基金会。 OPC 出现的目的是为不同的供应商设备与应用程序之间的接口标准化从而使其间的数据交换更加简单,因此,使我们可以开发不依靠于特定开发语言和开发环境的、可以

    2023年04月15日
    浏览(35)
  • 【基础】OPC 通讯协议

    OPC 全称 OLE For Process Control,即用于控制过程的 OLE,是一个工业标准,管理该标准的国际组织是 OPC 基金会。 OPC 出现的目的是为不同的供应商设备与应用程序之间的接口标准化从而使其间的数据交换更加简单,因此,使我们可以开发不依靠于特定开发语言和开发环境的、可以

    2024年02月04日
    浏览(40)
  • 常用通讯协议比较

    dubbo与http1.0的区别 二进制协议 :Dubbo使用自定义的二进制协议,而HTTP 1.0使用文本,发送一条相同的消息,http1.0会有更大的网络开销。 连接复用 :Dubbo采用单一的多路复用NIO长链接,每个请求都有一个对应的请求id,一个连接上可以进行多次并行处理请求和响应。HTTP 1.0默认

    2024年02月10日
    浏览(35)
  • IIC通讯协议

    IIC(Inter-integerted Circuit)集成电路总线,该通信协议由NXP(原PHILIPS)公司设计,多用于主控制器和从器件间的主从通信,在小数据量场景下使用,传输距离短,任意时刻只能有一个主机的特性。 IIC通信要求需要两条线路完成数据传输,一条是串行时钟线SCL和一条串行数据线

    2024年02月14日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包