server 端
const io = require('socket.io')(8000, {
// path: '/socket',
pingInterval: 10000,
pingTimeout: 5000,
cookie: false,
})
套接字
服务端 接受套接字 /home
io.of('/home').on('connection', socket => {
socket.on('get', val => {
socket.emit('back', val) // 返回单个链接客户端
io.of('/home').emit('back', val) // 返回所有此套接字的客户端
})
})
客户端
let config = {transports: ['websocket']}
const nav = io.connect('http://192.168.20.33:8000/home', config) // 链接后端,并使用套接字 /home
nav.emit('get', 'data')
房间
房间为多个用户(多个浏览器登录)
服务端
io.of('/home').on('connection', socket => {
socket.on('get', val => {
socket.emit('back', val) // 发给单个客户端
io.of('/home').to('roomName').emit('back', val) // 发给room所有客户端
})
socket.join('roomName')
})
客户端
全由服务端设置房间
断开链接
服务端
io.on('connection', (socket) => {
socket.disconnect(true) 参数为true 关闭底层, 参数为 false, 关闭此命名空间
});
客户端
const socket = io.connect('http://192.168.20.33:8000/home', config)
socket.disconnect() // 断开此链接
socket.on('connect, _ => {}) 链接上时触发
socket.on('disconnect', reson => {})
socket.open() 重连