Diarkis Room のサーバ側イベントをハンドリングする

Room の変化イベントを捕捉する

Room は、Room に変更があったときにイベントを発生させます。プロパティの変更、メンバーの変更(加入・離脱)、オーナーの変更などがこのイベントを発生させます。

room.SetOnRoomChange(func(roomID string, memberIDs []string, props map[string]interface{}) {
logger.Debug("There has been a change in the room %s", roomID)
})

Room のオーナーが変わった時のイベントを補足する

Room には、オーナー(Room を作成したクライアント、または自動的に選出されたメンバー)がいます。オーナーが変更されたときに発生するイベントをキャプチャすることができます。

room.SetOnRoomOwnerChange(func(params interface{}) {
roomData := params.(map[string]string)
roomID := roomData["string"]
      roomOWnerUID := roomData["ownerID"]
      logger.Debug("The owner of the room %s has changed to %s", roomID, roomOwnerUID)
})

Room のプロパティ変更イベントを補足する

このイベントは、部屋のプロパティが変更されたときに発生します。

room.SetOnRoomPropertyUpdate(func(params interface{}) {
roomData := params.(map[string]interface{})
roomID := roomData["roomID"].(string)
properties := roomData.["properties"].(interface{}).(map[string]interface{})
logger.Debug("Room %s has detect change in its properties %v", roomID, properties)
})

Room の削除イベントを補足する

このイベントは、Room がサーバから削除されたときに発生するイベントです。

room.SetOnRoomDiscard(func(roomID string) {
logger.Debug("Room %s has been discarded", roomID)
})