📜  Socket.IO-环境(1)

📅  最后修改于: 2023-12-03 15:05:14.352000             🧑  作者: Mango

Socket.IO

Socket.IO 是一个实时通信库,允许客户端和服务器之间进行双向通信。

环境
安装

在 Node.js 中使用 npm 安装 Socket.IO

npm install socket.io
前端

在 HTML 中引入 Socket.IO 客户端库

<script src="/socket.io/socket.io.js"></script>
后端

在 Node.js 中引入 Socket.IO 服务端库

const io = require('socket.io')(server);
运行

启动服务器

const express = require('express');
const app = express();
const server = app.listen(3000);

const io = require('socket.io')(server);

io.on('connection', socket => {
  console.log('A client connected!');
});

启动客户端

const socket = io();
通信
事件

基于事件驱动的通信方式,客户端和服务器可以任意发送和接收事件。

在服务器端发送事件

io.emit('hello', 'world');

在客户端接收事件

socket.on('hello', message => {
  alert(message); // "world"
});

在客户端发送事件

socket.emit('hello', 'world');

在服务器端接收事件

socket.on('hello', message => {
  console.log(message); // "world"
});
房间

Socket.IO 允许你把客户端加入到任意数量的房间中,用于在一组客户端之间进行分组广播。

将客户端加入房间

socket.join('room');

将客户端从房间中移除

socket.leave('room');

向房间中的所有客户端广播事件

io.to('room').emit('event', data);
命名空间

Socket.IO 允许你把客户端划分到不同的命名空间中,用于分离不同的逻辑和功能。

在服务器端创建命名空间

const chat = io.of('/chat')

向命名空间的所有客户端广播事件

chat.emit('event', data);
应用

Socket.IO 可以用于各种实时应用,例如:

  • 聊天室
  • 游戏
  • 实时协作
  • 数据可视化
参考