在heroku上托管的节点服务器不提供socket.io文件

时间:2012-06-08 20:50:46

标签: node.js heroku socket.io kineticjs

所以我使用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);  

1 个答案:

答案 0 :(得分:1)

因为Heroku只允许您在端口80中进行通信,所以您不能使用其他端口,因此地址应为:http://xxx-xxx-xxxx.herokuapp.com/socket.io/socket.io.js 而不是端口5000。实际上端口5000上没有任何内容,它是机器的内部。