nodejs ws.Server的特定选项

时间:2013-08-23 10:22:30

标签: javascript node.js websocket

有人可以解释一下disableHixie,nodejs websocket库中的clientTrack'ws'意味着:

new ws.Server([options], [callback])

options Object
host String
port Number
server http.Server
verifyClient Function
path String
noServer Boolean
disableHixie Boolean
clientTracking Boolean
callback Function

我无法找到结论性的描述。

1 个答案:

答案 0 :(得分:14)

Hixie-76是WebSocket支持的旧版和不推荐使用的协议,但该协议仍在某些版本的Safary和Opera中使用。如果 false ,库'ws'中的默认值,但您可以禁用该设置并将 disableHixie 选项设置为 true

clientTracking 选项提供对活动WebSocket客户端集合的访问。默认值为 true 。见下文:

var wss = new WebSocketServer({server:app });

wss.on('connection', function (ws) {
   .....
   console.log('Total clients: ', wss.clients.length);
   ....
}

修改:其他信息:

verifyClient 功能允许您添加任何自定义代码以接受或拒绝 传入连接。您的代码收到一个包含三个成员的info对象:

  • info.origin:连接的来源
  • info.secure:如果此连接已获得授权或加密,则为真
  • info.req:此连接的http.Server请求对象

verifyClient函数可以采用以下两种形式之一:

var wss1 = new WebSocketServer ({ ..., 
   verifyClient: function(info) {
      # ...check data in info and return true or false...
   }
);

var wss2 = new WebSocketServer ({ ..., 
   verifyClient: function(info, callback){
      # ...check data in info and call
      # callback(true) for success or
      # callback(false) for failure 
   }
});

如果您可以立即验证客户端,则第一种形式更简单。 对于异步验证,请使用第二种形式。