2

私はnode.jsが初めてで、localhostで正常に動作しています。

localhost の場合、私は xampp を使用しています。次に、ノード app.js を実行する (サーバーを実行する) .bat ファイルを用意します。

以下に示すように、各画面に両方のキャラクターが表示され、サーバーを介して通信される位置で、完全に機能し、ゲームを実行します.

効果がある証拠

次に、sshを使用して「node 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');

その後、すべての機能を実行するために使用されます。例えば

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);

4

2 に答える 2

1

localhost ではなく、サーバーに接続する必要があります。サーバーの IP アドレスにvar socket = io.connect('http://255.255.255.255:8080');置き換えて、これを試してください。255.255.255.255スクリプトのアドレスも変更します。 <script src="http://255.255.255.255:8080/socket.io/socket.io.js"></script>

node.js サーバーが8080ポートをリッスンしていること、このポートが開かれていること (ファイアウォールによってブロックされていないこと)、socket.io モジュールがサーバーに (npm 経由で) インストールされていることは確かですか?

詳細については、次の投稿を参照してください。

Socket.IO - require が定義されていません

socket.io - ReferenceError: io が定義されていません

于 2013-07-29T21:22:09.300 に答える