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} The value in the Origin header indicated by the client.
req {http.IncomingMessage} Client HTTP GET request.
secure {Boolean} true if req.connection.authorized or req.connection.encrypted is set.
The return value (boolean) of the function determines whether the handshake is accepted or not.
If verifyClient provides two parameters, then they are:
info {Object} as above.
cb {function} A callback that must be called by the user when checking an info field. The parameters of this callback are:
result {Boolean} whether to accept the handshake.
code {Number} When the result is false, this field determines the HTTP error status code to send to the client.
name {String} When the result is false, this field determines the HTTP reason phrase.
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帧被写出时被调用。