【Vue3+Ts project】认识 Websocket 以及 socket.io 库

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

目录

Websocket 

socket.io 

Socket.iO 事件名总结:

Socket.IO 方法总结


Websocket 

作用:

  • WebSocket 仍然提供实时的双向通信功能,使用Vue3 应用程序能够与服务器进行实时数据交换
  • 降低延迟和网络开销:相比传统的HTTP请求-响应模式,WebSocket建立了持久连接,减少了网络开销和延迟,适用于需要实时数据更新的应用场景。

功能:

  • 双向通信:WebSocket允许服务器和客户端之间双向发送和接收消息,实现实时的双向通信。
  • 实时推送:服务器可以主动向客户端推送数据,实现实时更新和通知。
  • 持久连接:WebSocket建立的连接会保持打开状态,避免了每次通信都需要重新建立连接的开销。
  • 低延迟:WebSocket采用较低的网络开销,提供较低的通信延迟,适合实时应用场景。

vue3 websocket,vue.js,websocket,typescript,腾讯云,java

socket.io 

作用: Socket.IO是一个基于WebSocket的实时通信库,它提供了跨浏览器和跨平台的实时通信解决方案。它的作用是简化实时双向通信的实现,使得在应用程序中建立实时连接、发送和接收实时数据变得更加容易和可靠。Socket.IO支持事件触发、广播、房间和命名空间等概念,为实时应用提供了更高级的功能和可扩展性。

Vue 3中使用Socket.IO的方法如下:


安装 Socket.IO 

pnpm add socket.io-client

npm install  socket.io-client

建立连接

注:

参数1:不传默认是当前服务域名,开发中传入服务器地址
参数2:配置参数,根据需要再来介绍

import io from 'socket.io-client'

const socket = io()
  socket = io(后台域名URL, {
    auth: {
      token: `Bearer ${store.user?.token}` //登录权限
    }
  })

确认连接成功

socket.on('connect', () => {
  // 建立连接成功
})

错误异常消息

  socket.on('error', () => {
    //错误异常消息
  })

已经断开连接

  socket.on('disconnect', () => {
    //已经断开连接
  })

发送消息
注:chat message 发送消息事件,由后台约定,可变


socket.emit('chat message', '消息内容')

接收消息

注:chat message 接收消息事件,由后台约定,可变

socket.on('chat message', (ev) => {
  // ev 是服务器发送的消息
})

关闭连接

注:一般离开组件时使用,onUnmounted使用

socket.close()

Socket.iO 事件名总结:

  1. connect:当与服务器成功建立连接时触发的事件。
  2. connect_error:当连接发生错误时触发的事件。
  3. connect_timeout:当连接超时时触发的事件。
  4. reconnect:当尝试重新连接到服务器时触发的事件。
  5. disconnect:当与服务器断开连接时触发的事件。
  6. error:当发生错误时触发的事件。
  7. message:当接收到服务器发送的消息时触发的事件。
  8. custom events:除了上述内置事件外,你还可以自定义事件,根据需要进行命名和处理。

通过监听这些事件,可以根据需要进行相应的操作和逻辑处理。

Socket.IO 方法总结

  1. connect(url: string, options?: object): 与指定的服务器建立Socket.IO连接。
  2. disconnect(): 断开Socket.IO连接。
  3. emit(eventName: string, ...args: any[]): 向服务器发送指定事件的消息或数据。
  4. on(eventName: string, callback: Function): 监听服务器发送的指定事件,并在事件触发时执行回调函数。
  5. once(eventName: string, callback: Function): 监听服务器发送的指定事件,只触发一次,然后移除监听器。
  6. off(eventName: string, callback?: Function): 移除指定事件的监听器。
  7. hasListeners(eventName: string): 检查是否有指定事件的监听器。
  8. join(room: string): 加入指定的房间(用于Socket.IO的房间功能)。
  9. leave(room: string): 离开指定的房间。
  10. rooms(): 获取当前Socket.IO连接所在的所有房间。

这些方法提供了基本的Socket.IO功能,用于建立连接、发送消息、监听事件和管理房间等操作文章来源地址https://www.toymoban.com/news/detail-534976.html

到了这里,关于【Vue3+Ts project】认识 Websocket 以及 socket.io 库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【你的第一个socket应用】Vue3+Node实现一个WebSocket即时通讯聊天室

    这篇文章主要是用WebSocket技术实现一个 即时通讯聊天室 ,首先先要了解为什么使用WebSocket而不是普通的HTTP协议,如果使用HTTP协议它是下面这种情况: 我发送一条消息,发送一个发送消息的请求;* 一直轮询接收别人发送的消息,不管有没有发送都要定时去调用接口。这里明

    2023年04月20日
    浏览(45)
  • vue3引入.vue文件以及.ts文件时提示找不到模块

    1.找不到vue文件的,是因为ts无法解析我们的vue结尾的文件,所以需要在src目录下, 新建一个d.ts结尾的文件(可以叫env.d.ts) 然后里面这样写就可以 2,找不到ts文件就更正常了,我们需要在tsconfig.json里面进行配置(没有的话就新建一个,在根src同级的目录下面)。就直接复制就

    2024年02月11日
    浏览(55)
  • 新建vite+vue3+ts项目,以及解决过程中遇到的问题

    目录 一、新建vite+vue3+ts项目 二、解决过程中遇到的问题 解决报错:Module ‘“xx.vue“‘ has no default export. 解决报错:Error [ERR_MODULE_NOT_FOUND]: Cannot find package ‘uuid’ imported from xxx的解决 解决报错:[plugin:vite:css] Preprocessor dependency \\\"less\\\" not found. Did you install it? 此处我使用npm做一下

    2024年02月06日
    浏览(113)
  • vue3+vite+ts项目集成科大讯飞语音识别(项目搭建过程以及踩坑记录)

    🐱 个人主页: 不叫猫先生 🙋‍♂️ 作者简介:前端领域新星创作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏:vue3从入门到精通、TypeScript从入门到实践 📢 资料领取:前端进阶资料以及文中源码可以找我免费领取 🔥 前端

    2023年04月09日
    浏览(34)
  • vue3+element Plus+ts 自定义主题色,以及生成主题色各种透明度

    目录 思路  安装css-color-function【接收一个颜色值,生成不同的透明度】 获取后台配置的主题色或者使用ColorPicker修改主题色  最终结果如下 本篇文章的主体思路是从element Plus官网引申而来。结合了我以前用vue2+element-ui配置主题色生成透明度(light-1至linght-9)的方法。 utils/

    2024年02月21日
    浏览(40)
  • vscode中vue3+ts报类型“{ }“上不存在属性“ “,以及ts.config.app.json和tsconfig.node.json中报错(彻底解决)

    亲爱的小伙伴们,你们是否遇到过使用vscode打开vue3+ts项目时一片爆红,一直提示类型\\\"{}\\\"上不存在属性 \\\"\\\",以及ts.config.app.json和tsconfig.node.json中报“在没有\\\"node\\\"模块解析策略的情况下,无法指定选项\\\"-resolveJsonModule”的问题,不要担心,不要着急,看了很多篇的博客,我终于是

    2024年02月13日
    浏览(22)
  • 持续不断更新中... 自己整理的一些前端知识点以及前端面试题,包括vue2,vue3,js,ts,css,微信小程序等

    答: 在普通的前端项目工程中,在script标签中增加setup即可使用api 使用setup()钩子函数 答: 不要在计算属性中进行异步请求或者更改DOM 不要直接修改computed的值 区别: 计算属性值基于其响应式依赖被缓存,意思就是只要他之前的依赖不发生变化,那么调用他只会返回之前缓

    2024年02月11日
    浏览(37)
  • Vue3动态路由(Vite+Vue3+TS+Mock)

    Vue通过路由进行页面管理,不同的路由绑定到不同的页面。一般来说,前端直接写好的路由为静态路由,在不修改代码的情况下,路由表是不会改变的。对于不需要动态改变路由表的网站,静态路由就已经足够了,但是当页面需要与权限进行绑定时,不同用户允许浏览的页面

    2024年02月02日
    浏览(77)
  • vue3 + ts

    在 vue3.2 中,我们只需在script标签中添加setup。就可以做到,组件只需引入不用注册,属性和方法也不用 return 才能于 template 中使用,也不用写setup函数,也不用写export default ,甚至是自定义指令也可以在我们的template中自动获得。 一、模板语法 1.使用 JavaScript 表达式 我们仅在

    2024年02月07日
    浏览(31)
  • csdn新星计划vue3+ts+antd赛道——利用inscode搭建vue3(ts)+antd前端模板

    大家好,我是yma16,本文分享利用inscode搭建vue3(ts)+antd前端模板。 2023 新星计划 vue(ts)+antd赛道报名入口:https://bbs.csdn.net/topics/616574177 搭建vue3+ts+antd的指引:认识vite_vue3 初始化项目到打包 InsCode 是一个一站式的软件开发服务平台,从开发-部署-运维-运营,都可以在 InsCode 轻松

    2024年02月16日
    浏览(33)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包