vue-koa框架下的socket组播

本文介绍了在vue-koa框架下利用WebSocket实现组播的背景、原理和步骤。通过WebSocket和Socket.IO解决HTTP轮询的资源消耗问题,避免广播模式下消息的指数增长。详细阐述了后端引入、前端引入、服务器端设置和客户端的配置,特别是如何使用命名空间和房间进行数据分组广播,以实现小组协作的实时同步。
摘要由CSDN通过智能技术生成


前言

最近项目涉及到小组协作,需要及时同步用户更改,这种情况下http协议只能使用轮询机制,消耗大量资源,因此尝试使用WebSocket。同时如果采用广播的话,每个用户的每一个操作都会被广播到所有用户的客户端,随着用户的增加,消息数几乎呈指数增长,安全性也得不到保障。
因此最后决定使用WebSocket组播。


一、WebSocket是什么?

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 连接本质上就是一个 TCP 连接,允许服务端主动向客户端推送数据。在 WebSocket 中,浏览器和服务器只需要通过http协议完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输直到有一方主动的关闭了该连接。

Socket.IO

这里引用官方说明
Socket.IO是一个库,可以在浏览器和服务器之间实现实时、双向和基于事件的通信。它由以下两个部分组成:

  • 一个Node.js服务器端
  • 一个运行在浏览器上的Javascript客户端(也可以用Node.js运行)

Socket.io示意图

Vue-Socket.io

Vue-Socket.io是为Vuejs集成的Socket.io,易于使用,支持Vuex和组件级Socket客户管理

二、使用步骤

1.后端引入

npm install socket.io

在app.js中引入:

const app = require('koa')();
const server = require('http').createServer(app.callback());
const io = require('socket.io')(server);

io.on('connection', socket => {
    /* ... */ });

server.listen(3001);
  • io.on后面的内容下面会进行介绍。
  • 这里是koa的写法,与Express有些不同,是app.callback(),而非app
  • 监听了3001端口,需要注意的是,即使你原本的项目已经监听了某一端口,也需要再单开一个端口,即一个项目监听两个端口,否则会遇到客户端持续发请求,但socket连不上的情况。
  • 使用的静态地址

2.前端引入

npm install vue-socket.io --save

在main.js引入:

import VueSocketIO from
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值