我是node.js的新手,并且在localhost上运行良好。
对于localhost,我使用的是xampp,然后有一个运行节点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');
然后用于运行所有功能。 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);
答案 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)服务器
您可以查看这些帖子以获取更多信息: