2

背景: 私は非常に基本的なマルチプレイヤー オンライン ゲーム サーバーを作成しています。このサーバーでは、各ゲームが独自の部屋に含まれており、そのゲーム データ (部屋名を含む) が GAMES 配列に含まれています。もはや存在しない。

このようなものがあることを願っています

socket.io.rooms.on('disconnect', function(roomID){
 //PSEUDO CODE// 
 //delete GAMES.getby(gameID:roomID)//
});

それ以外の場合は、ゲーム配列をループして、ソケットが切断されたときにルーム名を io.sockets.manager.rooms データと比較し、不一致を削除する予定です。しかし、もっとエレガントな解決策があるはずです。

4

1 に答える 1

3

io.sockets.clients('room')現在部屋にあるソケットのリストが表示されるので、次のようにすることができます。

if(io.sockets.clients('room').length > 1){
     //delete room logic here
 }

それが役立つことを願っています!

于 2012-11-16T07:31:19.283 に答える