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