connect method

Implementation

Future<ProConnectionStatus> connect() async {
  await disconnect();
  if (ip.isEmpty || port == 0) return ProConnectionStatus.failed;

  ws = WS('controlSocket');
  controlling = false;
  status = ProConnectionStatus.connecting;
  socketListener = ws.messages.listen(handleResponse);
  socketConnectionListener = ws.connectionStatus.listen((bool b) {
    status = b ? ProConnectionStatus.connected : ProConnectionStatus.failed;
    if (b == false) controlling = false;
  });

  ws.connect(
    'ws://$ip:$port/remote',
    usePing: false,
    firstMessage: WSMessage(
      data: {
        'password': password,
        'protocol': version == ProVersion.seven ? PRO7_CONTROL_PROTOCOL : PRO6_CONTROL_PROTOCOL,
        'action': "authenticate",
      },
    ),
  );

  return delayedConnectionCheck();
}