/var/log/messages

Apr 21, 2019 - 2 minute read - Comments - programming

phoenix excersize (13)

Channels の項。色々アレなのでゆっくりめに確認の方向です。

Channels

Channels は何百万ものクライアント接続でリアルタイム通信を行なうための機能とのこと。使用例として以下が列挙されています。

  • メッセージングアプリ
  • 最新ニュースの配信
  • 列車とかトラックとか、あるいはレース参加者のトラッキング
  • マルチプレイヤーゲイムのイベント
  • センサーの監視とか照明の制御とか
  • CSS とか JS の変更をブラウザに通知

概念的には Channels はとても単純、とのこと。

  • クライアントは一つ以上のトピックに接続
  • サーバあるいはクライアントあら発信されたトピックは全てのクライアントに送信
  • Channels はブラウザ、ネイティブアプリ、スマートウォッチ、組込みデバイス、あるいはネットワークに接続できるその他のあらゆる種類のクライアントをサポートできる
    • クライアントに必要なものは適切なライブラリ
    • Channels が理解できる transports の一つを使用して通信

HTTP なステイトレス接続とは違って、Channels はそれぞれが軽量な BEAM プロセスを基盤とした長期接続をサポートしている、とのこと。また、このアーキテクチャは適切に拡張できる、とのこと。

The Moving Parts

サーバをクラスタリングして云々、なんてこともできるのか、凄いな。

  • 通信を開始するには、クライアントは transports (Web Socket あるいはロングポーリングなど) を使って Phoenix サーバに接続して一つ以上のチャネルに参加
  • トピックごと、クライアントごとに一つの Channel サーバプロセスが作成される

PubSub という語が出てきたぞ。何だこれ。別途確認ってことで一旦エントリ投入します。何かあれば追記の方向にて。

phoenix excersize (12) phoenix excersize (14)

comments powered by Disqus