所以我使用node.js,socket.io和kineticJS制作了一个多人太空射击游戏。 我的Node.js服务器实际上并不服务客户端的页面。我的客户端文件当前托管在我的计算机上的本地Apache服务器中。
节点服务器现在正在Heroku上启动并运行,我似乎无法在客户端加载socket.io。我一直得到“io未定义”错误。 这是我导入脚本的方式:
<script src="http://xxx-xxx-xxxx.herokuapp.com:5000/socket.io/socket.io.js"></script>
我已按照此处显示的说明操作:https://devcenter.heroku.com/articles/nodejs 我的package.json文件如下所示:
{
"name": "Grid-Frontier",
"version": "0.0.1",
"dependencies": {
"socket.io": "0.9.x"
},
"engines": {
"node": "0.6.x"
}
}
在localhost上一切都很好,我可以执行以下操作:
// Importing on client side
<script src="http://localhost:8080/socket.io/socket.io.js"></script>
// Server-side
server.listen(8080);
socket = io.listen(server);
答案 0 :(得分:1)
因为Heroku只允许您在端口80中进行通信,所以您不能使用其他端口,因此地址应为:http://xxx-xxx-xxxx.herokuapp.com/socket.io/socket.io.js
而不是端口5000。实际上端口5000上没有任何内容,它是机器的内部。