websockets api 文档

websocket服务端api
This class represents a WebSocket server. It extends the 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}
                  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帧被写出时被调用。

猜你喜欢

转载自blog.csdn.net/t_xuanfeng123/article/details/80199164