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() 重連