質問: 元サーバーサイドのエンジニアです。 新サービスの設計にあたって、サーバー側でデータ変更があったことを リアルタイムに顧客側に通知する仕組みが必要になります。 (BtoBの自社サービス開発・企画段階) 顧客側の環境はいろいろでスマホアプリ、Webブラウザ、サーバーなどを想定しているため WebAPIのような形で提供できる方法がないか探しています。 まだイメージも固まってないのですが、顧客側のブラウザ→サーバーになんらかのステータスをもったデータを登録し、サーバー側でステータスが変わるイベントが発生したらそれを通知します。片方向です。 顧客側(クライアント側)ではその通知を受けたら画面に通知マークを付けるなどの実装をしてもらうことになると思います。 ポーリングしてサーバーからデータを取得する...時代の知識しかなく WebSocketや最近のPush通知など、ネットでいろいろ調べています。 が、イマイチよく理解できない部分を質問させてください。 1. リアルタイム性が高くイメージに合っているのは**Push通知**かと思うのですが 顧客側に複雑な設定(実装?)が必要そうです。 APIのようにサーバーで作ったものをクライアント側で組み込んで叩くだけ...のようなことはできないのでしょうか? 2. **WebSocket**というやり方も調べています。 こちらも顧客側の実装ハードルが高そうなのですが、クライアント側からすると 難しいorダサい等ないでしょうか? クライアント側の知識がほぼないので感覚的なところを伺いたく...
回答: リアルタイムと言いますが、対戦型ゲームのようにちょっとしたジッタも許容されないようなものもあるので、ある程度の見込みを提示された方がより適切な回答が得られやすいかと思います。 リアルタイム性を考えるとWebSocket>push通知です。 WebSocketを利用したFirebaseなどのサービスもあり、要求仕様を考慮して選定することになるかと思いますが、もちろん実装が簡単なのは既存サービスを利用したものでしょう。