Home Reference Source
import LocalSignaler from 'rtc-engine/js/signaler/LocalSignaler.js'
public class | source

LocalSignaler

Extends:

MittSignalerBase → LocalSignaler

한 기기에서 탭끼리 연결하는데 사용할 수 있는 시그널러. BroadcastChannel을 이용해 시그널을 주고받습니다.

Constructor Summary

Public Constructor
public

constructor(userConfig: object)

연결을 시작합니다.

Member Summary

Public Members
public

bc: *

통신이 이루어질 BroadcastChannel

public

config: {"heartbeatInterval": number, "heartbeatTimeout": number}

public

설정된 시간 동안 heartbeat를 받지 못하면 연결이 꾾어진 것으로 판정하는 타이머

public

id: *

피어를 구분하는 id.

public

설정된 주기마다 heartbeat 메시지를 보내는 타이머

public

sender: *

연결되어 있는 sender의 id

Method Summary

Public Methods
public

close()

close 훅.

public

send(msg: *)

상대에게 메시지를 전송합니다.

Private Methods
private

receiveHeartbeat(sender: *)

heartbeat timeout을 취소하고 ready를 false로 설정합니다.

Inherited Summary

From class Mitt
public

all: Map<string|symbol, EventHandler<any>[]>

이벤트별 이벤트 핸들러들

public

addEventListener(type: string | symbol, handler: EventHandler<any>): *

on() 메소드의 alias

public

emit(type: string | symbol, evt: Any)

Invoke all handlers for the given type.

public

off(type: string | symbol, handler: EventHandler<any>})

Remove an event handler for the given type.

public

on(type: string | symbol, handler: EventHandler<any>): *

Register an event handler for the given type.

public

once(type: *, handler: *)

public

removeEventListener(type: string | symbol, handler: EventHandler<any>): *

off() 메소드의 alias

From class SignalerBase
public

options: {}

RTCEngine 생성시 적용될 설정값들.

public

ready: *

시그널러가 메시지를 보낼 수 있는 상태인지 나타내는 값.

public

받은 메시지의 type 필드에 해당하는 이벤트 리스너가 없으면 여기에 보관됩니다.

public abstract

close(engine: RTCEngine)

public abstract

connected(engine: RTCEngine)

public abstract

disconnected(engine: RTCEngine)

public abstract

failed(engine: RTCEngine)

public

on(type: string, handler: EventHandler<object>)

특정 type의 메시지에 대한 핸들러를 등록합니다.

public

receive(msg: *)

메시지를 엔진에 전달합니다.

public abstract

send(data: *)

public abstract

start(engine: RTCEngine)

Public Constructors

public constructor(userConfig: object) source

연결을 시작합니다.

Override:

SignalerBase#constructor

Params:

NameTypeAttributeDescription
userConfig object
userConfig.heartbeatInterval number
  • optional

heartbeat 메시지를 보낼 시간 간격(ms)

userConfig.heartbeatTimeout number
  • optional

마지막으로 heartbeat 메시지를 받은 후 이 시간(ms)동안 heartbeat 메시지를 받지 못하면 연결이 끊긴걸로 간주합니다.

Public Members

public bc: * source

통신이 이루어질 BroadcastChannel

public config: {"heartbeatInterval": number, "heartbeatTimeout": number} source

public heartbeatTimeoutTimer: * source

설정된 시간 동안 heartbeat를 받지 못하면 연결이 꾾어진 것으로 판정하는 타이머

public id: * source

피어를 구분하는 id. 탭을 두개 열어놓고 한쪽을 새로고침시 재연결하는걸 막기 위해서 도입되었습니다.

public sendHeartbeatTimer: * source

설정된 주기마다 heartbeat 메시지를 보내는 타이머

public sender: * source

연결되어 있는 sender의 id

Public Methods

public close() source

close 훅. Broadcast Channel을 닫습니다.

Override:

SignalerBase#close

public send(msg: *) source

상대에게 메시지를 전송합니다.

Override:

SignalerBase#send

Params:

NameTypeAttributeDescription
msg *

전송할 메시지.

Private Methods

private receiveHeartbeat(sender: *) source

heartbeat timeout을 취소하고 ready를 false로 설정합니다.

Params:

NameTypeAttributeDescription
sender *