一、概述
- 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
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
new Server(httpServer[, options]);
const Server = require('socket.io');
new Server(httpServer[, options])
参数说明:
- httpServer (http.Server) 需要绑定的服务。
- options (对象)
- path (字符串):捕获webSocket连接的路径名,默认为(/http://socket.io)。
- serverClient (布尔型):是否为本地文件提供服务,默认为(true)。
- adapter (Adapter对象):使用哪一个适配器对象,默认的指向Adapter类的一个实例,详情跳转至socket.io-adapter
- origins (字符串):规定被允许的域,默认为(*) 。
- parser (Parser对象):指向一个parser对象,默认使用与http://socket.io相关联的socket.io-parser
使用new关键字和不使用new关键字均可实例化一个socket连接。
const io = require('socket.io')();
// or
const Server = require('socket.io');
const io = new Server();
对于http://engine.io,使用相同的配置项即可,详情查看engine.io的配置项参考。
其他的配置项:
- pingTimeout (数值型):客户端在没有收到服务器端的响应时,等待多少毫秒数,,默认是60000毫秒(即1分钟)。
- pingInterval (数值型):服务器端在发送响应包前延迟多少毫秒,默认为25000毫秒(即25秒)。
这两个参数将会影响的是响应延迟,客户端在知道服务不可用之前仍然需要等待一段时间。举个例子,如果下行TCP连接没有关闭,大概是由于网络故障,但是客户端不得不等待pingTimeout+pingInterval这个长的毫秒数才能得知disconnect(未连接成功)这一事件。
- transports (Array包含一系列字符串元素的数组):这一选项规定了允许哪些连接方式,默认的(['polling','websocket'])。
注意:这一点很重要,默认的,会使用长轮询的连接方式作为第一手方案,随后如果设备支持的话会升级到使用WebSocket,如果transports选项的值设置为**['websocket']**,则意味着直接使用WebSocket方式建立连接,并且如果这一连接方式不能使用,也不会自动切换到备用的链接方案(polling),因此目前建议使用默认的设置即可,除非你明白确信使用场景和你想要做什么。
const server = require('http').createServer();
const io = require('socket.io')(server, {
path: '/test',
serveClient: false,
// below are engine.IO options
pingInterval: 10000,
pingTimeout: 5000,
cookie: false
});
server.listen(3000);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论