nowjs – 拒绝客户端连接

我有一个nowjs问题:

你如何拒绝连接事件的事件处理程序的客户端连接?

我想在客户端连接时检查服务器上的一些值,然后决定是否放弃连接或让他连接。

好吧,因为stackoverflow以某种方式认为我的问题是低于他们的质量标准,我会尝试添加代码示例…

everyone.on('connect', function(){ if (!niceClient) { // do something to kick him out } }); 

提前致谢!

我不确定nowjs的具体细节,但使用普通的node.js,你可以这样做:

 var http = require('http') http.createServer(function (req, res) { // ... }).on('connection', function(sock) { if (!niceClient) { sock.end(); // Close the client connection. } }).listen(8080, 'localhost'); 

它看起来像nowjs只是包装一个节点的HTTP服务器,所以大概这种“连接”事件监听器也将与该库工作。

尝试这个

 nowjs.on('connect', function(){ nowjs.getClient(this.user.clientId, function(err){ var address = this.socket.handshake.address; //@todo test if ip is blocked or banned console.log("New connection from " + address.address + ":" + address.port); //bla bla bla .... if (!niceClient) { this.socket.end(); // Close the client connection. } }); }); 

我现在发现,在nowjs中访问控制还没有实现。 这可能是后来增加的一个function,但是到目前为止,实现自主开发的解决scheme并没有太多的事情要做。

我现在将解决这个问题如下:

所有相关的操作都是通过一个组(例如“niceusers”)完成的,并且在成功validation之后,用户被放置在这个组中。 如果没有成功的validation,他仍然处于“冷静”状态,没有收到任何组织的沟通。

这解决了我的情况,但它可能不足以实现真正的访问控制。

仍然希望这可以帮助别人!