ランダムマッチのような機能は実装できるでしょうか?

これからBubbleを触ってみようと思っているのですが、下記のような機能を実装することは可能でしょうか?
有料プラグインを活用することになったり、複雑なワークフローを組む必要がある、といった点は気にしないので、実装が可能かどうか伺えればと思いました。

<実装したいこと>
1.通話相手を探すアプリで、待合室Aと待合室B(待合室に入室可能な人数は可能な限り大きいことが理想)にいる人同士をランダムマッチさせる
2.マッチした二人は一定時間中に通話を開始するかどうか判断する
3.通話を開始したらその二人は待合室から抜ける。
4.開始しなかった場合、その二人は待合室に戻り、またランダムマッチ(できれば以前通話開始しなかった人は除いた中からマッチしたい)を行う

もしよろしければ教えていただければ幸いです、よろしくお願いいたします。

こんにちは。
待合室でのマッチングbubbleの基本機能でできそうですね。
音声、ビデオなどの相互通信はWebRTCを提供している外部サービスをAPIで連携して実現できそうです。プラグインもあると思います。フォーラム内をWebRTCで検索してみてください。

ありがとうございます!!

Bubbleの基本機能で、具体的にどういった手順で実装できるのでしょうか?
現在、下記の動画シリーズを一通り見てbubbleの操作方法の基本中の基本は押さえたと思うのですが、その中には該当の機能がなかったので、どこにその機能があるのか伺えればと思いました。

『Uber風のサイト構築を通じて学ぶ、bubbleの使い方』

待合室が複数あって、ユーザーが任意の待合室を選択してマッチングに進むという理解で、作り方を整理してみると…

  1. ユーザーが待合室Aに入っている状態を作る
  • ユーザーXが待合室Aの入室ボタンをクリック
  • 待合室AというRepeatingGroupに ユーザーXを入れる(ワークフローで制御)
  1. 任意の2ユーザーが"ペア"の状態を作る
  • 待合室AというRepeatingGroupに"ペア"というフィールドを予め作っておく
  • 任意の2ユーザーを選択して"ペア"フィールドに"pair1"とデータ入力

という感じですが、bubbleのRepeatingGroupのデータ制御でだいたい実現できます。とはいえ、上記の説明はざっくりだし、ニュアンスしか伝わらないと思います。(別に出し惜しみしている訳ではないです☺️)というのも簡単な要素から実際に作ってみないと理解がなかなか進みません。

今回のように複数のユーザーがダイナミックに変化していく状態を共有する場合、データベースに直接フックとなるデータを入れていき、その結果をユーザー側に表示させてやることになります。ユーザーAが入ったことをユーザーBがパッと知れる様子とか、bubbleはさくさくレスポンス返してくれますよ。

あと、bubbleは拡張性や柔軟性が非常に高い分、使用していくパーツ(GroupやRepeatingGroupなど)は抽象的な概念です。具体的なアクション(ボタンやワークフロー)とデータ(データベース)を組み合わせて制作を進めていくイメージです。

最後に上記とは全然違う方法もあると思ったのが、Webhookの活用です。データベースには触らず、二人のユーザーがマッチングされた情報をWebRTCのサービスに飛ばしてしまう方法です。Webhook、WebRTCに詳しい方いたら教えてください!自分も少し興味あります。

ありがとうございます!!

機能の名前などを伺ってやってみるイメージがつきました、試しにその形でやってみます!

rio様

ご回答いただきありがとうございます、上記の流れで実装しようと実物のbubbleを触りつつやってみた結果、まだイメージがついていない工程があったことが分かったので追加で質問できればと思います。

  • 任意の2ユーザーを選択して"ペア"フィールドに"pair1"とデータ入力

という、「任意の2ユーザーを選択する」という作業はどの様に実装するのでしょうか?
これがアルゴリズムで自動で実行される仕組みにしたい(ユーザーが画面に出たリストからボタンを押して選択するのではなく、自動でアルゴリズム側が実施する)のですが、それを行うことは可能でしょうか?

Repeating Group(入室中のユーザーリスト)からランダムに2ユーザーを選択するわけですが、私なら最初にRGにデフォルトで用意されている”: random item”を試してみたいですね。

ワークフローのData(Things):Make changes to thing からランダムに選択されたitem(RGのデータ1つ)を"pair1"としてデータを書き換え、さらにもう一回同じことを繰り返して2ユーザーをマッチングする流れが適当に思えます。(一方のユーザーが何かボタン押したときにランダムに相手を選ぶパターンの場合はランダムitem1回)

あと、Random number generator というプラグインもあるので、それも使えるかもです。このプラグインは単にランダムな数字を吐き出すだけですが、RGのitem#の末尾にこのプラグインからの数字を差し込むイメージです。

そこまで特殊な機能ではないので、実現は可能と思います。matching two usersで検索すると色々でてきました。。。

ありがとうございます!!

なるほど、そういった形で実装することが可能なのですね……! アルゴリズムを考えること自体が始めてなのと、bubbleの機能を把握できていなかったので思いつきませんでした……!
それでやってみます!

申し訳ありません、「matching two usersで検索」というのは、フォーラムで検索をかけるということでしょうか? それとも、Googleなどで「bubble matching two users」で検索するということでしょうか?

はい、そうですね。bubble 特有のパターンに慣れてくると何でも作れる自信がついてきます。途中わからくてしんどい体験もありますが、あきらめないでがんばってください。

ありがとうございます!!

わからないところが出てきたらまずそうやって調べるようにします!