- ヘルプセンター
- Diarkis サーバ
- Room
SetOnJoinCompleteByID が実行されるサーバ
新しいユーザーがルームに参加したときに呼び出されるコールバックを割り当てることができます。このコールバックは、ルームのサーバと新しいユーザーがいたサーバに応じて、異なるサーバーで呼び出される場合があります。
Diarkis Roomでは、ユーザーがどこにいてもルームに参加することができます(ユーザーは同じDiarkis クラスタにいる必要があります)。
つまり、ユーザーがルームのないサーバーに接続している場合、Diarkisルームは自動的にルームのある正しいサーバーにユーザーをリダイレクトします。
ルームには多くのコールバックがありますが、この記事では SetOnJoinCompleteByID について説明します。
SetOnJoinCompleteByID は、ユーザーがルームに正常に参加したときに呼び出されますが、ユーザーが他のサーバーからリダイレクトされた場合は、ユーザーが正しいサーバーに再接続すると、ルームへの参加操作が完了し、そのタイミングで SetOnJoinCompleteByID が呼び出されます 。
このコールバックは、ルームが存在するサーバー上で呼び出されます。
room.SetOnJoinCompleteByID(roomID, func(joinRoomID string, newMember *user.User))
2つのサーバーにまたがるルームジョインの場合
以下の図は、ユーザーがルームがあるサーバーに再接続され、SetOnJoinCompleteByID コールバックが呼び出される様子を示しています。
単一サーバーでのルーム参加の場合
下図は、ユーザーと同じサーバーに存在する部屋に参加する際の流れを示しています。
この場合、ユーザーは別のサーバーに再接続せず、同じサーバー上で SetOnJoinCompleteByID が呼び出されます。