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