BoltzEngine はどこと通信しますか
BoltzEngine の各種サービスは連携して通知を行います。マスターノードがリクエストを受けて、複数のスレーブノードを使って通知を送信します。
マスターノード
マスターノードは通知リクエストを受け付けるサービスです。BoltzEngine 3.0現在、以下2通りのプロトコルをサポートします。
| プロトコル | 受信するポート | 
|---|---|
| gRPC | TCP/13009 | 
| net/rpc | TCP/13010 | 
今後は gRPC を優先して新機能の追加などを行いますので、なるべく gRPC をお使いください。現在の対応状況は以下の通りです。
| プロトコル | net/rpc | gRPC | 
|---|---|---|
| Legacy APNs | ○ | ○ | 
| APNs HTTP/2 | ○ | ○ | 
| FCM(HTTP) | ○ | ○ | 
| FCM(XMPP) | ○ | ○ | 
| WebPush | ○ | ○ | 
| ADM | × | ○ | 
また、マスターノードはスレーブノードの以下ポートと通信を行います。
| プロトコル | 受信するポート | 
|---|---|
| net/rpc | TCP/13007 | 
スレーブノード
スレーブノードは APNs、FCM、ADM および WebPush と通信するサービスです。スレーブノードを動作させるサーバーから以下のサーバーに対する十分なネットワーク帯域を用意する必要があります。
各プッシュ通知サービスと通信する際に、以下のドメインとポートに対して接続します。
APNs 使用時(HTTP/2)
- api.push.apple.com:443 (Production)
 - api.development.push.apple.com:443 (Development)
 
HTTP/2の場合は、BoltzEngine の auth-server サービスとも通信します。
- (boltz auth-serverを実行したホスト):13008
 
APNs 使用時(バイナリインターフェイス)
- gateway.push.apple.com:2195 (Production プッシュ送信)
 - gateway.push.apple.com:2196 (Production フィードバックサービス)
 - gateway.sandbox.push.apple.com:2195 (Development プッシュ送信)
 - gateway.sandbox.push.apple.com:2196 (Development フィードバックサービス)
 
FCM 使用時
- fcm.googleapis.com:443 (FCM-HTTP利用)
 - fcm-xmpp.googleapis.com:5235 (FCM-XMPP利用)
 - fcm-xmpp.googleapis.com:5236 (FCM-XMPP利用)
 
ADM 使用時
- api.amazon.com:443
 
WebPush 使用時
- fcm.googleapis.com:443 (Chrome/Sleipnir for Windows/Vivaldi)
 - updates.push.services.mozilla.com:443 (Firefox)
 - sg2p.notify.windows.com:443 (Edge)
 
上記以外のブラウザでは接続先が異なる場合があります。また予告なく変更される場合があります。
認証サービスノード
認証サービスは、APNs(HTTP/2) で利用する認証トークンを管理します。このサービスは、以下のポートでスレーブノードからのリクエストを待ち受けます。
- TCP/13008
 
Tools
BoltzEngine 付属のツールは、それぞれ以下のプロトコルに対応しています。
| ツール名/プロトコル | net/rpc | gRPC | 
|---|---|---|
| boltz-messenger-gateway | ○ | ○ | 
| boltz-http-proxy | ○ | × | 
| boltz-http-proxy | ○ | × |