teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

ちょっと追加説明

2017/12/21 09:06

投稿

turbgraphics200
turbgraphics200

スコア4269

answer CHANGED
@@ -2,16 +2,16 @@
2
2
 
3
3
  [ルーム既存メンバー] すでに参加しているメンバーにpeerJoinイベントが発生
4
4
 
5
- [ルーム既存メンバー] peerJoinイベントで自分の参加している部屋のメンバーの配列に参加メバー追加
5
+ [ルーム既存メンバー] peerJoinイベントで自分の参加している部屋のメンバーのカウ+1
6
6
 
7
- [ルーム既存メンバー] メンバー配列の数が参加可能最大人数を超えた場合は、参加したユーザー([自分])に "abort" を送信
7
+ [ルーム既存メンバー] メンバーカウントが参加可能最大人数を超えた場合は、参加したユーザー([自分])に "abort" を送信
8
8
 
9
9
  [自分] "abort" を受信したら、その部屋から退室し次の部屋へ。 → ループ
10
10
 
11
11
  とすれば、クライアントのみでも可能ではないでしょうか?
12
12
 
13
- ポイントは、メンバー配列は自分が参加した以降のメンバーの配列であること。これにより、1つのルームのメンバーが複数人いたとしても、それぞれ管理するメンバー配列の数は古い人が最大になりますので、"abort"が送信されるのも1回のみとなります。
13
+ ポイントは、メンバーカウントは自分が参加した以降のメンバーのであること。これにより、1つのルームのメンバーが複数人いたとしても、それぞれ管理するメンバーカウントは古い人が最大で以降新しいメンバーになるにつれ少なくなりますので、”最大人数越え”と判定するのは1人だけで、"abort"が送信されるのも1回のみとなります。
14
14
 
15
- サンプルを作ってみました。
15
+ サンプルを作ってみました。(サンプルではメンバーをカウントするのではなく、配列で管理しています。)
16
16
  [サンプル](https://codepen.io/gtk2k/pen/PEzEgo)
17
17
  MAX_MEMBERという定数が参加可能人数ですのでこれを増減して試してみてください。

1

ちょっと追加説明

2017/12/21 09:06

投稿

turbgraphics200
turbgraphics200

スコア4269

answer CHANGED
File without changes