e Eventmitter
1.
new webSocket.server(option[,callback])
options:需要留意的属性为:
verifyClinet :fn 可用于验证传入连接的功能
handleProtocols:fn 用来处理websocket协议
noServer:bolean 在多个WebSocket服务器之间共享一个HTTP / S服务器。
clientTracking :boolean 指定是否跟踪客户端
perMessageDeflate:boolean/object是否开启消息压缩
创建一个新的服务器实例。必须提供端口,服务器或noServer之一或引发错误。如果设置了端口,则会自动创建,启动和使用HTTP服务器。要改为使用外部HTTP / S服务器,请仅指定服务器或noServer。在这种情况下,HTTP / S服务器必须手动启动。 “noServer”模式允许WebSocket服务器完全脱离HTTP / S服务器。例如,这可以在多个WebSocket服务器之间共享一个HTTP / S服务器。
info :{Object}
origin {String}客户端指示的Origin头中的值。
req {http.IncomingMessage}客户端HTTP GET请求。
secure {Boolean}如果设置了req.connection.authorized或req.connection.encrypted,则为true。
函数的返回值(布尔值)决定是否接受握手。
如果verifyClient提供了两个参数,那么它们是:
info {Object}同上。
cb {function}在检查信息字段时必须由用户调用的回调。这个回调的参数是:
result {Boolean}是否接受握手。
code {Number}当结果为false时,此字段确定要发送给客户端的HTTP错误状态码。
name {String}当结果为false时,该字段确定HTTP原因短语。
2.EVENT
1.error:{error} 当底层服务器发生错误时发出
2.header:headers ,req 作为握手的一部分,将响应标头写入套接字之前发出。这允许您在发送标题之前检查/修改标题
3.server属性
clients:全部客户端实例
address:fn 如果侦听IP套接字,则返回具有端口,协议族和地址属性的对象,该对象指定操作系统报告的服务器的绑定地址,地址系列名称和端口。如果服务器正在监听管道或UNIX域套接字,则该名称将作为字符串返回
close:fn 如果内部创建,请关闭HTTP服务器,终止所有客户端并在完成时调用回调。如果通过服务器或noServer构造函数选项使用外部HTTP服务器,则必须手动关闭它
handleUpgrade(req,socket,head,callback)处理noserver 的函数,处理HTTP升级请求。当内部创建HTTP服务器或者通过服务器选项传递HTTP服务器时,将自动调用此方法。在“noServer”模式下运行时,必须手动调用此方法。如果升级成功,则使用WebSocket对象作为参数调用回调。
shouldHanlde(req)查看是否应该由此服务器处理给定的请求。默认情况下,此方法验证请求的路径名,并将其与路径选项匹配(如果提供)。返回值true或false决定是否接受握手。当需要自定义处理逻辑时,可以重写此方法。
4.websocket clinet
1.event
ping:data为buffer 心跳函数 从服务器接收到ping时发出
pong:data为buffer 从服务器接收到pong时发出
unexpected-response: req,res 当服务器响应不是预期的响应时发出,例如401响应。此事件可以读取响应以提取有用的信息。如果服务器发送无效响应并且没有此事件的侦听器,则会发出错误
upgrade :res 作为握手的一部分从服务器收到响应标头时发出。这允许您从服务器读取标题,例如'set-cookie'标题
addEventListener:注册一个监听事件
2.属性
binaryType:指示连接传输的二进制数据类型的字符串。这应该是“nodebuffer”,“arraybuffer”或“fragments”之一。默认为“nodebuffer”。类型“片段”将发出从发送者接收到的片段数组,而没有复制级联,这对于传输具有多个片段的大型消息的二进制协议的性能是有用的。
bufferAmount 已使用的send()调用排队但尚未传输到网络的数据字节数
protool 协议
readyState 状态
3.函数
terminate()关闭链接
ping([data[,mask]][,callback])/pong
数据{Any}在ping帧中发送的数据。
mask {Boolean}指定是否应该屏蔽数据。当websocket不是服务器客户端时默认为true。
callback {Function}一个可选的回调,当ping帧被写出时被调用。