2

我是 node.js 的新手,并且可以在 localhost 上正常工作。

对于本地主机,我使用的是 xampp,然后有一个运行 node app.js(运行服务器)的 .bat 文件。

它可以完美运行并运行游戏,如下所示,每个屏幕上都出现了两个角色,并且位置通过服务器进行通信。

证明它有效

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

在此处输入图像描述

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

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

然后用于运行所有功能。例如

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);

4

2 回答 2

2

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

用作连接将http://localhost不起作用。您必须使用您的服务器 IP 地址或域。

于 2013-07-29T21:59:26.177 回答
1

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

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

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

Socket.IO - 要求未定义

socket.io - ReferenceError: io is not defined

于 2013-07-29T21:22:09.300 回答