This commit is contained in:
yuexin 2020-12-09 15:49:43 +08:00
commit c25995fdc9

View File

@ -88,30 +88,35 @@ export class GeneralRoom extends Room {
} }
//TODO: 掉线逻辑 //TODO: 掉线逻辑
async onLeave (client: Client, consented: boolean) { async onLeave (client: Client, consented: boolean) {
this.state.players.get(client.sessionId).state = PlayerStateConst.PLAYER_OFFLINE; // this.state.players.get(client.sessionId).state = PlayerStateConst.PLAYER_OFFLINE;
//
try { // try {
if (consented) { // if (consented) {
throw new Error("consented leave"); // throw new Error("consented leave");
} // }
await this.allowReconnection(client, 60); // await this.allowReconnection(client, 60);
this.state.players.get(client.sessionId).state = PlayerStateConst.PLAYER_NORMAL; // this.state.players.get(client.sessionId).state = PlayerStateConst.PLAYER_NORMAL;
//
} catch (e) { // } catch (e) {
this.state.players.delete(client.sessionId); // this.state.players.delete(client.sessionId);
} // }
} }
onDispose() { onDispose() {
this.dispatcher.stop(); this.dispatcher.stop();
} }
getClient(player: string | Player) { getClient(player: string | Player): Client {
let result: Client;
if (typeof player == 'string') { if (typeof player == 'string') {
return this.clients.find(client => client.sessionId == player ); result = this.clients.find(client => client.sessionId == player );
} else { } else {
return this.clients.find(client => client.sessionId == player.id ); result = this.clients.find(client => client.sessionId == player.id );
} }
if (!result) {
error(`无法获取id为: ${typeof player == 'string' ? player : player.id} 的客户端`)
}
return result;
} }
/** /**