一、概述
- 1、如何使用
- 使用 Node http 服务器搭建
- 使用 Express 3/4
- 使用 Express 2.X
- 发送和接收事件推送
- 创建你自己的路由
- 发送不确定能否准确送达到客户端的消息
- 正在发送和正在接受的数据(消息确认机制 acknowledgements)
- 广播消息给除当前客户端之外的所有在线客户端
二、服务器端 API
- Server
- new Server(httpServer[, options]);
- new Server(port[, options]);
- new Server(options);
- server.sockets
- server.serverClient([value]);
- server.path([value]);
- server.adapter([value]);
- server.origins([value]);
- server.origins(fn);
- server.attach(httpServer[, options]);
- server.listen(httpServer[, options]);
- server.bind(engine);
- server.onconnections(socket);
- server.of(nsp)
- server.close([callback]);
- Namespace
- Event: 'connect'
- Event: 'connection'
- Flag: 'Volatile'
- Flag: 'local'
- Socket
- socket.id
- socket.rooms
- socket.client
- socket.conn
- socket.handshake
- socket.use(fn)
- socket.send([…args][, ack])
- socket.emit(eventName[, …args][, ack])
- socket.on(eventName, callback)
- socket.once(eventName, listener)
- socket.removeListener(eventName, listener)
- socket.removeAllListener([eventName])
- socket.eventNames()
- socket.join(room[, callback])
- socket.leave(room[, callback])
- socket.to(room)
- socket.in(room)
- socket.compress(value)
- socket.disconnect(close)
- Flag: 'broadcast'
- Flag: 'volatile'
- Event: 'disconnect'
- Event: 'disconnecting'
- Client
- client.conn
- client.request
三、客户端API
- IO
- io.protocol
- io(url[, options])
- 初始化示例
- 使用多路复用
- 携带额外的请求头 extraHeaders
- Manager
- manager event
- Sokect
- socket event
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
socket.join(room[, callback])
- room (字符串)
- callback (Function)
- Return Socket for chaining
添加客户端到room房间内,并且执行可选择的回调函数。
io.on('connection', (socket) => {
socket.join('room 237', () => {
let rooms = Objects.keys(socket.rooms);
console.log(rooms); // [ <socket.id>, 'room 237' ]
io.to('room 237', 'a new user has joined the room'); // broadcast to everyone in the room
});
});
加入房间的过程被Adapter适配器处理。
为了更方便开发者,每一个socket自动的通过他自己的id标志创建了一个只属于他自己的房间,这样做,使得当前socket和其他socket之间的广播变得更容易。
io.on('connection', (socket) => {
socket.on('say to someone', (id, msg) => {
// send a private message to the socket with the given id
socket.to(id).emit('my message', msg);
});
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论