connectSocket method

Future connectSocket(
  1. void connected()
)

Implementation

Future connectSocket(void Function() connected) async {
  if (!socketCreated) {
    String path = '/${Backendless.applicationId}';
    String host = MapEventHandler._rtUrl.isEmpty
        ? ClassEventHandler._rtUrl
        : MapEventHandler._rtUrl;

    host += path;
    socket = socket_io.io(host, <String, dynamic>{
      'transports': ['websocket'],
      'path': '/${Backendless.applicationId!}',
      'query': <String, String>{
        'apiKey': Backendless.apiKey!,
      }
    });

    if (socket != null) {
      socketCreated = true;
      onConnectionHandlers(connected);
    }

    socket!.on('disconnect', (data) {
      //print('disconnect: $data');
      socketConnected = false;
      if (needCallDisconnect) _controller.add('disconnect');
    });
    socket!.on('error', (data) {
      if (kDebugMode) {
        print('error$data');
      }
      //_controller.add('disconnect');
      needResubscribe = true;
    });
    socket!.on('connect_error', (data) {
      if (kDebugMode) {
        print('connect_error: $data');
      }
      _controller.add('connect_error');
      needResubscribe = true;
    });
    socket!.on('connect_timeout', (data) {
      if (kDebugMode) {
        print('connect_timeout: $data');
      }
    });
    socket!.on('reconnect', (data) {
      if (kDebugMode) {
        print('reconnect: $data');
      }
      _controller.add('reconnect');
    });
  } else if (socketConnected == true) {
    connected.call();
  }
}