Below you will find pages that utilize the taxonomy term “信令服务器”
Posts
基于Socket.io开发信令服务器
什么是 socket.io 一个 js 库,用来建立长链接,默认使用 WebSocket,次选 Http 长轮询
什么是信令服务器 一般指 WebRtc 的一个概念,由于 WebRtc 通过 P2P 进行连接,所以需要一台服务器用来交换双方的网络地址信息,在交换信息后用户的数据流就使用 P2P 传输,所以不必担心消耗过多公网流量
能做什么 实现双向、实时、基于事件的通信。这里我们利用这个特性制作信令服务器
Socket.io 官方文档 Node.js 使用包管理器安装socket.io,这个是服务端库、socket.io-client是客户端库,本文针对服务端
前置:Web 应用框架(例如:express)
可选:
日志框架(例如:winston) 服务管理(例如:pm2) 数据库(例如:better-sqlite3(需要编译)) 通信格式一般以数组为单位:[“事件名”,“数据内容”]
// 通过emit发送消息,默认向全部连接实例发送 socket.emit("message", "Hello from Socket.IO!"); // 指定方向,默认每一个连接都加入了一个房间,向用户默认的那个房间发消息就可以实现私聊等功能 io.to(ID).emit("point", data); // 监听服务 socket.on("joinroom", (data) => { // 可在此处编写业务逻辑 }); 配置例子 export default { PORT: 1145, // 服务器配置 SOCKET_SETTINGS: { transports: ["websocket"], allowEIO3: true, pingTimeout: 50000, pingInterval: 15000, maxHttpBufferSize: 1e8, cors: { origin: "*", methods: ["GET", "POST"], }, }, }; 创建服务器的函数 /** * 创建 Socket.