是一个WebSocket库,包括了客户端的js和服务器端的nodejs,它的目标是构建能够在不一样浏览器和移动设备上使用的实时应用.html
yarn add socket.io
复制代码
let express = require('express');
let path = require('path');
let app = express();
app.get('/', function (req, res) {
res.sendFile(path.resolve('index.html'));
});
let server = require('http').createServer(app);
let io = require('socket.io')(server);
io.on('connection', function (socket) {
console.log('客户端已经链接');
socket.on('message', function (msg) {
console.log(msg);
socket.send('sever:' + msg);
});
});
io.of('/news').on('connection', socket => {}); // 经过of指定房间 默认为/
socket.join(roomNamw);// 进入房间
socket.leave(roomNamw);// 离开房间
socket.emit('message', msg); // 向多个客户端广播
socket.broadcast.emit('message', msg); // 向除本身以外的客户端发送广播
server.listen(80);
复制代码
<script src='/socket.io/socket.io.js'></script>
let socket = io.connect('/'); // 当启动一个socketio服务时,会划分多个命名空间,/为默认的命名空, 不是表明根路径
//监听与服务器端的链接成功事件
socket.on('connect',function(){
console.log('链接成功');
socket.send('客户端发送');
});
//监听与服务器端断开链接事件
socket.on('disconnect',function(){
console.log('断开链接');
});
io.sockets.adapter.rooms // 获取房间列表
io.sockets.adapter.rooms[room].sockets // 取得进入房间内所对应的全部sockets的hash值
复制代码