Elixir Advent Calendar 2016 の22日目です。 mixiグループ Advent Calendar 2016 の22日目も記載しているのでよければそちらもどうぞ マッチングとは ゲームにおいて、プレイヤーとプレイヤーを何らかの条件で(同程度の強さなど)によって結びつけることです。プレイヤーにとって面白いと考えられる対戦を作るのが目標になります。 良い対戦相手を見つけるには待ち時間が必要になります。キューに入ってきた順ではなく、同じ条件のユーザが揃うまで待つ必要があるからです。 そのため、クライアントには非同期で結果を返す必要があります。 Phoenix Channels クライアントへ非同期に結果を返すために、Phoenix の Channels を活用します。WebSocket を抽象化しており、アプリケーション側から容易にメッセージパッシングを行えます。 また、