Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

11.6.2 relayService

送り側(左側)のウェブアプリから受け側(右側)のウェブアプリへ情報を送りたいとします。 両者を直接つなぐのが早そうに見えます。 これは、ピアツーピア通信と呼ばれる方式です。

ところが、そう簡単ではありません。 ウェブアプリは、サーバであれブラウザの乗ったPCであれ、インターネット上のコンピュータにURLでアクセスして初めて通信できます。 そして、通信の相手が個人のPCやスマートフォンだと、そのURLでアクセスすること自体が難しいのです。

一方、あらかじめ用意されたウェブサーバになら、URLで確実にアクセスできます。 そこで登場するのがrelayServerです。 下図のように、relayServer(Web Socket Relay Service)を介してウェブアプリ同士が通信します。

relayServerは、特定のウェブサイトの固有名ではありません。 「ウェブアプリ間でリアルタイム性の高いデータのやり取りを仲介する」という機能を持つウェブサイトを指す抽象的な呼び名で、SNSやブログが特定のサービス名ではないのと同じ位置づけです。 この種のサイトは、pub/sub servicesと呼ばれることもあります。

relayServerの内部は、トークン(ユーザーやシステムごとに割り当てられるランダムな文字列)ごとに区切られたスペース(図の濃い青色の部分)に分かれます。 そのスペースの中には、いくつものチャンネル(図の茶色の部分)を置けます。

通信できるのは、同じトークンと同じチャンネルにアクセスしたウェブアプリ同士だけです。 図ではウェブアプリが2つつながっていますが、つなげられる数に制限はありません。 イメージとしては、チャットスペースに近いものです。