# socket.io 快速入门

# 1. 介绍

服务端和客户端 使用 socket.io 进行 websocket 通信

# 2. 服务端

安装:

npm i socket.io

# "socket.io": "^4.7.3"

示例:

const { Server } = require("socket.io");

// 允许跨域
const io = new Server({ cors: {} });

io.on("connection", (socket) => {
  // 向该 socket 客户端发送消息
  socket.emit('CONNECTED');

  // 向所有 socket 客户端发送消息 (除了该 socket 客户端)
  socket.broadcast.emit('MESSAGE', data);

  // 侦听该 socket 客户端
  socket.on('MEMBER_INFO', (data) => {
    console.log(data.member, 'connected');
  })

  // 客户端 socket 断开时触发,默认事件
  socket.on('disconnect', () => {
    const member = getMemberBySocket(socket);
    socket[member] = null;
    logger.info(member, 'disconnect');
  });
});

io.listen(30001, {
  // This defines how many bytes a single message can be,  default 1MB (1e6)
  maxHttpBufferSize: 10 * 1024 * 1024, // 10MB
});

# 2.1. 客户端

安装:

npm i socket.io-client

# "socket.io-client": "^4.7.3"

示例:

import { io } from "socket.io-client";

const socket = io(`ws://localhost:30001`);

// 侦听服务端 'MESSAGE' 事件
socket.on('MESSAGE', (data) => {
  console.log(data);
})

// 向服务端发送 'SEND' 事件
socket.emit('SEND', { message: 'hello, I am client' })

# 3. 参考

本章目录