我如何让node.js在我的服务器上工作?

我是新的node.js,并得到它在本地主机上正常工作。

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

它可以完美的工作,并运行游戏,你可以看到每个屏幕上出现的两个字符和通过服务器传递的位置。

证明它的工作

然后当我尝试运行它在服务器上使用SSH运行“节点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');

然后用它来运行所有的function。 例如

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

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

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

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

你确定你的node.js服务器监听8080端口,这个端口是否打开(没有被防火墙阻止),并且你的服务器上安装了socket.io模块(通过npm)?

你可以看到这些post的更多信息:

Socket.IO – require没有被定义

socket.io – ReferenceError:io未定义