Room Join のコールバックについて

Diarkis Room は分散設計なっています。そのためルームのジョイン処理後に呼び出されるコールバックがルームが存在しないサーバで呼び出される場合があります。

ルームに参加する処理は、ルームが存在するサーバ上で実行されます。

そのため、参加しようとしているクライアントが接続しているサーバにルームがない場合は、ルームがあるサーバで自動でジョイン処理が実行されます。

処理が完了した後に呼び出されるコールバックはこれとは違い、必ずクライアントが接続しているサーバで呼び出されます。

IMPORTANT: このためコールバックの処理の中でルームのプロパティなどに対する処理を実行することはできません。

room.Join(roomID string, userData *user.User, ver uint8, cmd uint16, message []byte, callback func(error, []string, string, int64, map[string]interface{}))

 

同一のサーバにルームがある場合

room-join-callback-1-1

別のサーバにルームがある場合

room-join-callback-2-2