websocketsapi⽂档
websocket服务端api
This class represents a WebSocket server. It extends th 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服务器。
如果verifyClient未设置,则握⼿⾃动接受。如果提供了⼀个参数,那么就是:
info :{Object}
webserver接口开发origin {String}客户端指⽰的Origin头中的值。
req {http.IncomingMessage}客户端HTTP GET请求。
secure {Boolean}如果设置了tion.authorized或pted,则为true。
函数的返回值(布尔值)决定是否接受握⼿。
如果verifyClient提供了两个参数,那么它们是:
info {Object}同上。
cb {function}在检查信息字段时必须由⽤户调⽤的回调。这个回调的参数是:
result {Boolean}是否接受握⼿。
code {Number}当结果为false时,此字段确定要发送给客户端的HTTP错误状态码。
name {String}当结果为false时,该字段确定HTTP原因短语。
2.EVENT
<:{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帧被写出时被调⽤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论