我如何让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未定义