@cross-border-bridge/multiplex-data-bus
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

mutiplex-data-bus

  • MultiplexDataBusのTypeScript用の実装を提供します
  • Node.jsで利用することを想定しています

Setup

package.json

    "dependencies": {
        "@cross-border-bridge/multiplex-data-bus": "~2.0.0"
    },

Usage

step 1: import

import * as mdb from "@cross-border-bridge/multiplex-data-bus";

step 2: MultiplexDataBusの準備

DataBusまたは下位MultiplexDataBusのインスタンス と ID を指定して, インスタンスを生成します。

    const child = <HTMLIFrameElement>document.getElementById("child");
    const dataBus = new db.PostMessageDataBus(child.contentWindow);
    const dataBus1 = new mdb.MultiplexDataBus(dataBus, "layer1");
    const dataBus2 = new mdb.MultiplexDataBus(dataBus1, "layer2");

step 3: 受信データの受け口を設定

MultiplexDataBus#addHandler を実行すると, 同一層(または上位層)から送信したデータのみを受信します。

    dataBus1.addHandler((data) => {
        layer1 or layer2  send されたデータ受信時に実行する処理
    });
    dataBus2.addHandler((data) => {
        layer2  send されたデータ受信時に実行する処理
    });

ハンドラの解除手段には, 以下2種類の方法があります

  • データ受信時の処理return true をする
  • MultiplexDataBus#removeHandler を実行する

step 4: データを送信

MultiplexDataBus#send を実行すると, リモート側の同一層(または上位層)へデータを送信できます。

    // リモート側のlayer1へデータを送信
    dataBus1.send(data);
    // リモート側のlayer2(及びlayer1)へデータを送信
    dataBus2.send(data);

step 5: 破棄

MultiplexDataBus#destroy で破棄できます。

    dataBus2.destroy();
    dataBus1.destroy();
    dataBus.destroy();

License

本リポジトリは MIT License の元で公開されています。 詳しくは LICENSE をご覧ください。

Readme

Keywords

none

Package Sidebar

Install

npm i @cross-border-bridge/multiplex-data-bus

Weekly Downloads

1

Version

2.0.0

License

MIT

Last publish

Collaborators

  • cross-border-bridge