1

nowjsの質問があります:

接続イベントのイベントハンドラーからのクライアント接続をどのように拒否しますか?

クライアントが接続するときにサーバー上のいくつかの値を確認してから、接続を切断するか、接続を許可するかを決定したいと思います。

わかりました、stackoverflowはどういうわけか私の質問が品質基準を下回っていると考えているので、コードサンプルを追加してみます...

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

前もって感謝します!

4

3 に答える 3

2

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サーバーをラップしているように見えるので、おそらくこの種の「接続」イベントリスナーはそのライブラリでも機能します。

于 2011-06-17T18:20:09.373 に答える
2

これを試して

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.
           }               
    });
});
于 2012-01-03T22:43:46.850 に答える
1

アクセス制御が(まだ)nowjsに実装されていないことがわかりました。これは後で追加される機能かもしれませんが、現時点では、自家製のソリューションを実装する以外にやることはあまりありません。

私は今、次のようにこれを解決します:

関連するすべてのアクションはグループ (「niceusers」など) を介して実行され、検証が成功すると、ユーザーはこのグループに配置されます。検証が成功しない場合、彼は「宙ぶらりん」のままになり、グループの通信をまったく受信しません。

これで私のケースは解決しますが、実際のアクセス制御には不十分かもしれません。

これが誰かを助けることを願っています!

于 2011-06-20T10:18:25.773 に答える