Skip to content

nec-baas/baas-ssepush-nodejs

Repository files navigation

NECモバイルバックエンド基盤: Node.js 用 SSE Push SDK

NECモバイルバックエンド基盤(BaaS)の Node.js 向け SSE Push クライアントライブラリです。

本ライブラリは Node.js 専用です。ブラウザでは利用できません。

準備

本ライブラリを使用するアプリケーションディレクトリ(package.jsonが存在する ディレクトリ)に移動し、本ライブラリを npm install でインストールしてください。

$ npm install @nec-baas/ssepush-node --save

使用方法

サンプルが example/client.js にありますので、詳細はこちらを確認ください。

インスタンスの生成

最初に、本ライブラリを require してください。 (BaaS ライブラリの require と初期化も必要です)

const SsePush = require('@nec-baas/ssepush-node').SsePush;

以下手順で SsePush インスタンスを生成します。

const ssePush = new SsePush(Nebula);
// デバイストークン設定
ssePush.setDeviceToken(deviceToken);

デバイストークンは、デバイスに固有の識別子です。UUIDなどを使用することを 推奨します(SsePush.uuid()で生成可能)。デバイストークンは同一デバイス では原則変更しないように、適宜保存するなどしてください。

受信チャネル設定

受信チャネルを設定する場合は、setChannels で指定します。

ssePush.setChannels(['channel1', 'channel2'])

ハートビート間隔・監視設定

ハートビート間隔の設定は setHeartbeatInterval で行います。 値はサーバ側の設定に合わせてください。

ssePush.setHeartbeatInterval(30);

ハートビート間隔の2倍の時間が経過してもハートビート受信ができない場合は、 onError でエラー通知されます。

なお、ハートビート間隔を設定しない場合は、ハートビート監視は行われません。

登録・受信開始

BaaSサーバへのインスタレーション登録と Push 待ち受けを開始します。 ユーザがログイン状態になっている場合は、インスタレーションは自動的にユーザ に紐づけされます。

// BaaSサーバへの登録と Push 待ち受けを開始
ssePush.start({
	onMessage: (message) => {
		// 受信処理
	},
	onError: (error) => {
		// エラー処理
	}
});

SSE Push メッセージを受信するたびに onMessage が呼び出されます。 引数でメッセージが渡されます。メッセージは以下のような JSON object で、本文は "data" に格納されます。

{
    "type": "message",
    "data": "This is a test.",
    "lastEventId": "",
    "origin": "https://baas.example.com"
}

エラー時は onError が呼び出されますので、適宜回復処理を行ってください。 ステータスコードは error.status に格納されます。

オプション

Proxy サーバを使用する場合は、SsePush コンストラクタの第二引数にオプション を指定してください (注: 認証付きの Proxy は使用できません)

const options = { proxy: 'http://proxy.example.com:8080' }
const ssePush = new SsePush(Nebula, options);

HTTPS接続でかつサーバ側が自己署名証明書を使用している場合は、以下のオプションを指定します。 (非推奨)

const options = { rejectUnauthorized: false }

その他のオプションについては、EventSource の README を参照してください。

OSSライセンス

本モジュールは EventSource v1.0.5 を改造したものを含んでいます。 (lib/eventsource.js) https://github.com/EventSource/eventsource

改造内容は以下のとおりです。

  • oncomment コールバックを追加
  • options に agent を追加

ライセンス条件は LICENSE.eventsource を参照してください。

About

SSE Push Client for Node.js

Topics

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.eventsource

Stars

Watchers

Forks

Packages

No packages published