nodejs websocket服务器在移动到生产时无法连接

时间:2015-08-25 22:01:09

标签: node.js websocket

我已在本地计算机上成功实现了以下nodejs websocket服务器,但是当我尝试将其移至生产时,我无法连接(不确定是否需要服务器代码,但无论如何我都会包含):

var ws = require("nodejs-websocket");

var server = ws.createServer(function(conn){
    console.log("New connection");
    //conn.sendText("You are connected");

conn.on("text", function(str){
    //conn.sendText(str.toUpperCase() + "!!!");

    var inputOBJ = JSON.parse(str);

    if(inputOBJ.TYPE === 'USERNAME'){
        conn.username = inputOBJ.BODY;
    }

    if(inputOBJ.TYPE === 'MESSAGE'){
        //console.log("Connected User: " + conn.username);
        //console.log("Recipient: " + inputOBJ.RECIPIENT);
        //console.log("Body: " + inputOBJ.BODY);

        var userOnline = false;
        server.connections.forEach(function(connection){

            if(connection.username === inputOBJ.RECIPIENT){
                userOnline = true;
                var message = {};
                message.TYPE = "USER";
                message.BODY = inputOBJ.BODY;
                connection.sendText(JSON.stringify(message));
            }

        });

        if(!userOnline){
            var message = {};
            message.TYPE = "SYSTEM";
            message.BODY = "User is not online";

            conn.sendText(JSON.stringify(message));
        }

    }


});

conn.on("close", function(code, reason){
   //console.log("Connection closed"); 
});

conn.on('error', function(err){
    //console.log(err.stack);
});

}).listen(1337);

当我在我的服务器上运行该程序时,它的运行方式就好像一切正​​常。通过运行命令 netstat -lntu 检查端口后,我可以验证端口是否已打开。以下是显示端口1337的行:

  

tcp 0 0 0.0.0.0:1337 0.0.0.0:* LISTEN

如果我还能提供其他任何内容,请告诉我。截至目前,我不确定为什么它不接受连接???

1 个答案:

答案 0 :(得分:0)

这结果证明了我正在测试的网络之一上设置的防火墙规则。当我从另一个网络连接时,一切都按预期运行。