Skip to content

MeshRoom

メッシュ接続でのルームを管理するクラスです。

SDK内部の利用のみで、コンストラクタは通常利用しません。 MeshRoomのインスタンスは、Peer#joinRoom() で生成されます。

Sample

const meshRoom = peer.joinRoom('roomName', {
  mode: 'mesh',
  stream: localStream,
});
meshRoom.on('open', () => {});

Members

Name Type Description
name string ルーム名です。
connections Object Peer IDをキーに、ルーム内のコネクションを保持するオブジェクトです。

Methods

close()

ルームを退出し、ルーム内のすべてのユーザーとのコネクションを切断します。

Return value

undefined

getLog()

シグナリングサーバにルームのログ取得を要求します。 シグナリングサーバからログを受信すると、logイベントが発火します。

Return value

undefined

Sample

room.once('log', log => {
  // ...
});
room.getLog();

replaceStream(stream)

送信しているMediaStreamを更新します。 受信のみモードでメディアチャネル接続を行なっている状態で、 新しいMediaStreamがメディアトラックを持つ場合、自動的に送受信モードに切り替わります。

Parameters

Name Type Required Default Description
stream MediaStream 更新対象となる新しいMediaStreamです。

Return value

undefined

send(data)

WebSocketを使用してルーム内の全てのユーザーにデータを送信します。

Parameters

Name Type Required Default Description
data * 送信するデータです。

Return value

undefined

Events

Event: 'open'

新規にPeerがルームへ入室したときに発生します。

room.on('open', () => {
  // ...
});

Event: 'peerJoin'

ルームに新しいPeerが参加したときに発生します。

Name Type Description
peerId string 参加したPeerのIDです。
room.on('peerJoin', peerId => {
  // ...
});

Event: 'peerLeave'

新規にPeerがルームを退出したときに発生します。

Name Type Description
peerId string 退出したPeerのIDです。
room.on('peerLeave', peerId => {
  // ...
});

Event: 'log'

ルームのログを受信したときに発生します。

Name Type Description
logs string[] ログ(JSON文字列)の配列です。
room.once('log', logs => {
  for (const logStr of logs) {
    const { messageType, message, timestamp } = JSON.parse(logStr);
    // ...
  }
});

Event: 'stream'

ルームにJoinしている他のユーザのストリームを受信した時に発生します。 ストリーム送信元のPeer IDはstream.peerIdで取得できます。

Name Type Description
stream MediaStream MediaStreamのインスタンスです。
room.on('stream', stream => {
  // ...
});

Event: 'data'

他のユーザーから送信されたデータを受信した時に発生します。

Name Type Description
data object data object形式のオブジェクトです。

data object

Name Type Description
src string データを送信したPeerのIDです。
data * 受信したデータです。
room.on('data', ({ src, data }) => {
  // ...
});

Event: 'close'

ルームをcloseしたときに発生します。

room.on('close', () => {
  // ...
});