0

所以我使用 node.js、socket.io 和 kineticJS 制作了一个多人太空射击游戏。我的 Node.js 服务器实际上并不为客户端页面提供服务。我的客户端文件当前托管在我计算机上的本地 Apache 服务器中。

节点服务器现在在 Heroku 上启动并运行,我似乎无法在客户端加载 socket.io。我不断收到“io is not defined”错误。这就是我导入脚本的方式:

    <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"
    }
    }

在本地主机上一切都很好,我可以执行以下操作:

    // Importing on client side
    <script src="http://localhost:8080/socket.io/socket.io.js"></script>

    // Server-side
    server.listen(8080);
    socket = io.listen(server);  
4

1 回答 1

1

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

于 2012-06-08T21:08:06.190 回答