npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@nec-baas/ssepush-node

v7.5.0

Published

BaaS SSEPush Client for Node.js

Downloads

26

Readme

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 を参照してください。