1

私のnode.jsサーバーには、60秒ごとに「spawnItem」という関数を呼び出す間隔が設定されています。この関数が呼び出されると、次のコードが実行されます。

io.sockets.emit("spawn item", {x: 10, y: 10});

サーバーがこれを実行しようとするたびに、すぐに閉じて次のように言います。

TypeError: undefined のメソッド 'emit' を呼び出せません

私がオンラインで読んだすべてによると、それは問題ないはずです。

var util = require("util"),object inspection, etc),
io = require("socket.io"),
Player = require("./Player").Player;

このコードはページの上部にあり、必要なのはそれだけだと思いますか、それとも間違っていますか? その下にもいsocket = io.listen(4339)ます。ソケットはすべて以下などで構成されています。

私もやってみました:

socket.broadcast.emit("spawn item", bla bla bla);
socket.emit("spawn item", bla bla bla);

私の目標は、サーバーがクライアントに特定の x、y 座標で 60 秒ごとにアイテムを生成するように指示することですが、サーバーにメッセージを送信させることはできません。

ありがとう!

4

1 に答える 1

1

あなたは多くの情報を投稿していませんが、間違ったオブジェクトを使用していると思います:

var io = require('socket.io');
io.sockets.emit(...); // Fails, wrong object.

代わりに、によって返されるオブジェクトを使用する必要がありますlisten

var io = require('socket.io').listen(4339);
io.sockets.emit(...); // Correct use.
于 2013-05-21T04:53:46.237 に答える