socket.io的小例子


前言

socket.io是原生ws封装的第三方库,它不仅仅对客户端做了封装,还对服务端也进行了封装。
提供了很多能用得到的功能,比如:
断链自动尝试重链
对不支持ws的浏览器做兼容(降级轮循http)
发送和监听消息的封装(原生的,无论前后端写起来都比较冗长)

服务端

socket.io当然不会仅支持node,但是官方推荐node体验比较好

import { createServer } from "http";
import { Server } from "socket.io";

const httpServer = createServer(); // socket.io的服务需要http服务做支撑

const io = new Server(httpServer, { // 初始化ws
    cors: { //处理ws跨域问题
        origin: "*",
        methods: ["GET", "POST"]
    }
});

io.on("connection", (socket) => { // 监听ws链接成功
    console.log('与客户端链接成功');
    socket.on("yanhan", (data) => { // 监听ws的yanhan消息
        console.log('收到了小仙女阎涵的消息:'+ data);
    });

    setInterval(() => { // 定时给Yh发送当前时间
        socket.emit("toYh", "你好啊,现在已经"+new Date().toLocaleString());
    }, 3000);
});

httpServer.listen(3000); // 启动http服务

客户端

这里拿浏览器举例子





    
    
    
    Document