Channels の項。色々アレなのでゆっくりめに確認の方向です。
Channels
Channels は何百万ものクライアント接続でリアルタイム通信を行なうための機能とのこと。使用例として以下が列挙されています。
- メッセージングアプリ
- 最新ニュースの配信
- 列車とかトラックとか、あるいはレース参加者のトラッキング
- マルチプレイヤーゲイムのイベント
- センサーの監視とか照明の制御とか
- CSS とか JS の変更をブラウザに通知
概念的には Channels はとても単純、とのこと。
- クライアントは一つ以上のトピックに接続
- サーバあるいはクライアントあら発信されたトピックは全てのクライアントに送信
- Channels はブラウザ、ネイティブアプリ、スマートウォッチ、組込みデバイス、あるいはネットワークに接続できるその他のあらゆる種類のクライアントをサポートできる
- クライアントに必要なものは適切なライブラリ
- Channels が理解できる transports の一つを使用して通信
HTTP なステイトレス接続とは違って、Channels はそれぞれが軽量な BEAM プロセスを基盤とした長期接続をサポートしている、とのこと。また、このアーキテクチャは適切に拡張できる、とのこと。
The Moving Parts
サーバをクラスタリングして云々、なんてこともできるのか、凄いな。
- 通信を開始するには、クライアントは transports (Web Socket あるいはロングポーリングなど) を使って Phoenix サーバに接続して一つ以上のチャネルに参加
- トピックごと、クライアントごとに一つの Channel サーバプロセスが作成される
む
PubSub という語が出てきたぞ。何だこれ。別途確認ってことで一旦エントリ投入します。何かあれば追記の方向にて。