0

そこで、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"
    }
    }

ローカルホストではすべてが正常で、次のことができます。

    // 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でのみ通信できるため、他のポートを使用することはできません。したがって、アドレスはポート5000ではなく次のようになりhttp://xxx-xxx-xxxx.herokuapp.com/socket.io/socket.io.js ます。実際にはポート5000には何も存在せず、マシンの内部にあります。

于 2012-06-08T21:08:06.190 に答える