一文读懂Websocket

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

系列文章目录

提示:通过本章节的学习,你想深入了解什么是websocket。



前言

提示:这里可以添加本文要记录的大概内容:

例如:websocket是html5新增的全双工通讯协议,基于Tcp协议,属于应用层协议。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Websocket是什么?

WebSocket 是一种在单个 TCP 连接上进行全双工通信的网络协议。它在建立连接之后,客户端和服务器之间可以进行双向数据传输,即服务器可以主动向客户端发送数据,而不需要等待客户端的请求。

二、如何使用Websocket

前端创建流程

具体使用:
在前端,可以使用浏览器提供的 WebSocket API,来创建 WebSocket 连接。在后端,可以使用各种编程语言和框架提供的 WebSocket 库来实现 WebSocket 服务端。

	  1、创建websocket对象
	  const ws = new WebSocket('ws://localhost:8080');
	  2、监听其事件
	  ws.onopen = function(event) {
	  console.log('WebSocket 连接成功!');
	  }
	  ws.onmessage = function(event) {
	  console.log('收到服务器发送的消息:', event.data);
	  }
	  ws.onclose = function(event) {
	  console.log('WebSocket 连接关闭!');
	  }
	  ws.onerror = function(event) {
	  console.log('WebSocket 连接出错!');
	  }

后端创建流程

代码如下(示例):

使用 Node.js 作为后端,可以使用 ws 模块来实现 WebSocket 服务端。首先需要安装 ws 模块:

安装代码 npm install ws


    然后,在代码中创建 WebSocket 服务器:
    const WebSocket = require('ws');
	const server = new WebSocket.Server({ port: 8080 });
	server.on('connection', function(ws) {
	  console.log('WebSocket 连接成功!');
	  ws.on('message', function(data) {
	  console.log('收到客户端发送的消息:', data);
	  // 向客户端发送消息
	  ws.send('收到消息:' + data);
	});
	ws.on('close', function() {
	  console.log('WebSocket 连接关闭!');
	  });
    });

在上述代码中,WebSocket.Server 创建了 WebSocket 服务器,监听 8080 端口
server.on(‘connection’) 监听客户端连接事件,ws.on(‘message’) 监听客户端发送消息事件,ws.send 向客户端发送消息,ws.on(‘close’) 监听客户端关闭连接事件。

websocket应用场景:

1、即时聊天应用:WebSocket 可以实现客户端和服务器之间的实时双向通信,适用于聊天室、在线客服等即时通讯场景。
2、实时数据展示:WebSocket 可以实时地将数据从服务器推送到客户端,适用于监控系统、实时数据分析等场景。
3、在线游戏:WebSocket 可以实现游戏客户端和服务器之间的实时双向通信,适用于多人在线游戏、竞技游戏等场景。
4、视频直播:WebSocket 可以实现视频流的实时传输和播放,适用于直播平台、在线教育等场景。
5、物联网:WebSocket 可以将传感器数据实时推送到云端,适用于智能家居、智能城市等场景。

websocket缺点:


   1、长连接:WebSocket 使用长连接,因此需要维护连接状态,消耗一定的系统资源。
   2、跨域限制:WebSocket 虽然支持跨域请求,但是在一些浏览器中,需要进行特殊的配置才能实现跨域请求。
   3、安全性:WebSocket 与 HTTP 协议不同,没有同源策略的限制,因此存在一定的安全风险,需要注意安全问题。
   4、兼容性:虽然现代浏览器都支持 WebSocket,但是一些老旧的浏览器不支持 WebSocket,需要进行特殊处理。
   5、无法使用 HTTP 缓存机制:WebSocket 通信的协议与 HTTP 协议不同,无法使用 HTTP 缓存机制,需要单独进行缓存处理。

websocket总结:

在使用 WebSocket 的过程中需要注意它的缺点,选择合适的场景使用。文章来源地址https://www.toymoban.com/news/detail-604627.html

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

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

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

相关文章

  • 一文读懂Embedding

    一文读懂Embedding

    “Embedding”直译是 嵌入式、嵌入层 。 简单来说,我们常见的 地图 就是对于 现实地理的Embedding ,现实的地理地形的信息其实远远超过三维,但是地图通过颜色和等高线等来最大化表现现实的地理 信息 。 通过它,我们在现实世界里的文字、图片、语言、视频就能转化为计算

    2024年02月11日
    浏览(12)
  • 一文读懂数据加密

    一文读懂数据加密

    在计算机信息安全领域,之前软件设计师的网络安全部分了解了一点密码学的知识,这里随想记录一下。 数据加密 的基本过程就是对原来为 明文 的文件或数据按 某种算法 进行处理,使其成为不可读的一段代码为“ 密文 ”,使其只能在输入相应的 密钥 之后才能显示出原容

    2024年02月03日
    浏览(10)
  • 一文读懂HTML

    一文读懂HTML

    HTML(HyperText Markup Language)的历史可以追溯到20世纪90年代早期,它是互联网发展的重要里程碑之一。以下是HTML的历史概述: 早期阶段(1980年代末 - 1990年代初):在互联网的早期阶段,人们开始意识到需要一种标记语言来创建和共享文档。这导致了Tim Berners-Lee在1989年至1991年

    2024年02月13日
    浏览(15)
  • 一文读懂ThreadLocal

    目录 ThreadLocal 有什么用? 如何使用 ThreadLocal? ThreadLocal 原理了解吗? ThreadLocal 有什么用? 通常情况下,我们创建的变量是可以被任何一个线程访问并修改的。 如果想实现每一个线程都有自己的专属本地变量该如何解决呢? JDK 中自带的 ThreadLocal 类正是为了解决这样的问题

    2024年02月13日
    浏览(7)
  • 一文读懂Redis哨兵

    一文读懂Redis哨兵

    吹哨人巡查监控后台master主机是否故障,如果故障了根据 投票数 自动将某一个从库转换为新主库,继续对外服务。 俗称,无人值守运维。 主从监控:监控主从redis库运行是否正常 消息通知:哨兵可以将故障转移的结果发送给客户端 故障转移:将其中一个Slave作为新的Maste

    2024年02月04日
    浏览(7)
  • 一文读懂SerDes技术

    一文读懂SerDes技术

    SerDes Technology 1.1 Parallel/Serial Interface 数据的传输最开始是低速的串行接口(Serial Interface,简称串口),为了提高数据的总带宽,首先想到的是增加数据的传输位宽,再进一步提升速率,也就是并行接口(Parallel Interface,简称并口)的方式,并逐渐取代传统低速串口成为主流。

    2024年02月07日
    浏览(17)
  • 一文读懂c++语言

    一文读懂c++语言

    C++是一种通用的、高级的编程语言,它是C语言的扩展。C++由Bjarne Stroustrup于1983年首次引入,并在之后的几十年中不断发展壮大。C++被广泛应用于各种领域,包括系统开发、游戏开发、嵌入式系统、图形用户界面(GUI)开发等。 C++的设计目标是提供一种高效、灵活和可扩展的

    2024年02月13日
    浏览(9)
  • 一文读懂 MySQL 锁

    一文读懂 MySQL 锁

    1.1 什么是锁 锁是计算机用以协调多个进程间并发访问同一共享资源的一种机制。MySQL中为了保证数据访问的一致性与有效性等功能,实现了锁机制,MySQL中的锁是在服务器层或者存储引擎层实现的。 1.2 锁用来解决什么问题 锁是用来解决并发事务的访问问题,我们已经知道事

    2024年02月08日
    浏览(6)
  • 一文读懂ChatGPT

    ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI 研发的聊天机器人程序,于2022年11月30日发布。ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完

    2024年02月06日
    浏览(21)
  • 一文读懂“大语言模型”

    一文读懂“大语言模型”

    本文基于谷歌云的官方视频:《Introduction to Large Language Models》 ,使用 ChatGPT4 整理而成,希望对大家入门大语言模型有帮助。 本课程主要包括以下 4 方面的内容: 大语言模型的定义 描述大语言模型的用例 解释提示词调优 谷歌的 Gen AI 开发工具介绍 大语言模型是深度学习的

    2024年02月09日
    浏览(12)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包