はじめに
あるお客さんから、ワークフローの待受画面での新着通知方法についてご相談がありました。
- 単純なポーリングだと、通知の遅延や、サーバリソースを消費する
- ロングポーリングは、待ち受け画面のためにIRISのライセンスを消費する
- MQTTなどを使うと専用のサーバプロセスが必要
何か良い方法は無いでしょうか。 といった内容です。
この課題に対して調査したところ、以下の方式が見つかりました。
- ブラウザからSSE(Server-Sent Event)方式を使い、nginx上にアクセス
- IRIS側から通知が必要なクライアントのIDに対してnginxにメッセージをPOST
- nginxがルーティングを行い、当該クライアントにメッセージを通知
今回は以下の点について手順や設定等解説していきたいと思います。
- nginx のソースビルドと Web Gateway のインストール
nginx-push-stream-moduleを使った SSE (Server-Sent Events) 通知- ブラウザ受信 (
/subscribe) とサーバ送信 (/publish) の最小実装
全体構成
まずは全体像です。データの流れをシンプルに分けることで、役割が明確になります。
(3).jpg)
.png)

.png)

.jpg)
.jpg)




