init method

Future<void> init([
  1. String? id
])

Implementation

Future<void> init([String? id]) async {
  if (isInit == true) {
    return;
  }
  isInit = true;
  if (id != null) {
    await _initialize(id);
  } else {
    if (options.clientType == "websocket") {
      try {
        String id = await _api.retrieveId();
        await _initialize(id);
      } catch (error, stack) {
        _abort(PeerErrorType.ServerError, error);
      }
    } else {
      await _initialize();
    }
  }

  _socket.on(SocketEventType.Message.value, (Map data) {
    _handleMessage(ServerMessage(
        type: data["type"], payload: PeerConnectOption.fromJson(data["payload"] ?? {}), src: data["src"]));
  });

  _socket.on(SocketEventType.Error.value, (error) => _abort(PeerErrorType.SocketError, error));

  _socket.on(SocketEventType.Disconnected.value, (data) {
    if (_disconnected) return;
    emitError(PeerErrorType.Network.value, 'Lost connection to server.');
    disconnect();
  });

  _socket.on(SocketEventType.Close.value, (data) {
    if (_disconnected) return;
    _abort(PeerErrorType.SocketClosed, 'Underlying socket is already closed.');
  });
}