如何在我的服务器上运行node.js?

时间:2013-07-29 20:04:09

标签: javascript node.js socket.io

我是node.js的新手,并且在localhost上运行良好。

对于localhost,我使用的是xampp,然后有一个运行节点app.js的.bat文件(运行服务器)。

它可以完美运行并运行游戏,如下所示,每个屏幕上都出现两个字符,并且通过服务器传送位置。

proof it works

然后当我在使用ssh运行“node app.js”后尝试在服务器上运行它时,它会输出     info - socket.io started 就像我在本地主机上运行它一样,但是当我运行应用程序时,我得到以下错误(我之前尝试让它在本地主机上运行时遇到这些错误 - 它们在服务器运行不正常时出现。 。):

enter image description here

任何帮助都会很棒,谢谢!

在客户端我在html文件中有这个代码: <script src="http://localhost:8080/socket.io/socket.io.js"></script> 和     var socket = io.connect('http://localhost:8080');

然后用于运行所有功能。 e.g。

socket.on('message', function (data) {
    var player = ig.game.getEntitiesByType( EntityPlayer )[0];
    if(player)
    {
        player.messagebox = player.messagebox + '\n' + data + ' disconnected';
    }
});  `

在服务器端我有代码: var app = require('http').createServer(handler), io = require('socket.io').listen(app), fs = require('fs') app.listen(8080);

2 个答案:

答案 0 :(得分:2)

var socket = client.connect('http://stuartjones.me:8080');更改为var socket = io.connect('http://stuartjones.me:8080');

使用http://localhost作为连接无效。您必须使用您的服务器IP地址或域。

答案 1 :(得分:1)

您必须连接到您的服务器而不是localhost。试试这个var socket = io.connect('http://255.255.255.255:8080');,将255.255.255.255替换为服务器的IP地址。也要更改脚本的地址: <script src="http://255.255.255.255:8080/socket.io/socket.io.js"></script>

您确定您的node.js服务器是否侦听8080端口,此端口是否已打开(未被防火墙阻止),并且您的socket.io模块已安装(通过npm)服务器

您可以查看这些帖子以获取更多信息:

Socket.IO - require is not defined

socket.io - ReferenceError: io is not defined