init method
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.');
});
}