@cross-border-bridge/data-channel

DataChannel for Web application

Stats

StarsIssuesVersionUpdatedCreatedSize
@cross-border-bridge/data-channel
002.0.05 years ago5 years agoMinified + gzip package size for @cross-border-bridge/data-channel in KB

Readme

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

Setup

package.json

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

Usage

step 1: import

import * as dc from "@cross-border-bridge/data-channel";

step 2: DataChannelを準備

使用するDataBusインスタンスを指定してDataChannelを生成します。

    var dataChannel: dc.DataChannel = new dc.DataChannel(dataBus);

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

DataChannel#addHandler で受信データの受け口となるハンドラを追加します

    var handler: dc.DataChannelHandler = (packet, callback?) => {
        データ受信時の処理(省略)
        // callbackがundefinedでない場合, 以下のように応答を返信する
        if (callback) {
            callback.apply(this, ["format", "response-data"]);
        }
    }
    dataChannel.addHandler(handler);

DataChannel#removeHandler で解除することができます。

step 4-1: PUSH (単方向データ) を送信

  • DataChannel#sendcallback の指定を省略することで, PUSH (単方向データ) を送信することができます
  • PUSH は相手からの応答が不要な場合に使用します
    dataChannel.send(["format", "data"]);

step 4-2: REQUEST (双方向データ) を送信

  • DataChannel#sendcallback を指定することで, REQUEST (双方向データ) を送信することができます
  • REQUEST は相手からの応答が必要な場合に使用します
    dataChannel.send(["format", "data"], (error, packet) => {
        応答受信時の処理(省略)
        // errorはDataChannel内でエラーが発生した時に設定される
    });

step 5: 破棄

DataChannel#destroy で破棄できます。

    dataChannel.destroy();

DataChannelをdestroyしても下位層(DataBus)のdestroyは行われません。

License

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.