マッチングの結果にルームの現在の人数を追加して取得させる方法

ルームを検索させるマッチングの結果にルームごとの現在の人数を追加するには、

matching.Add の引数を使ってルームをマッチングに登録する際に一緒にそのタイミングでのルームの人数を追加することで実現可能です。

第4引数の map[string]interface{} はアプリケーション都合でカスタムなデータを挿入することができます。ここで追加されたデータはマッチングの検索結果にも追加されるので、ここでルームの人数を追加することで検索の結果にルームの人数を反映させることが可能になります。

コード例:

次のサンプルコードはルームを60秒間(TTL=60秒が最大値)の間マッチングの検索対象にルームの人数と一緒に登録するコードになります。

matchingID := "find-room-matching"

conditions := make(map[string]int)

conditions["roomType"] = 1

data := make(map[string]interface{})

// その時点でのルームの人数を追加する

data["numberOfMembers"] = len(room.GetMemberIDs(roomID))~

// TTL の最大値は 60 秒です。これ以上の間マッチングの検索対象としたい場合は matching.Add を繰り返し呼ぶ必要があります

ttl := int64(60)

// どれくらいの速度でデータを浸透させるかを指定します。ここの値は 2 以下を推奨しています。

limit := 2

matching.Add(matchingID, roomID, conditions, data, ttl, limit)