openSocket method

Future<void> openSocket()

Implementation

Future<void> openSocket() async {
  connectionNegotatiorManager.init();
  setState(XmppConnectionState.SocketOpening);
  try {
    var socket = xmppSocket.createSocket();

    return await socket
        .connect(
      account.host ?? account.domain,
      account.port,
      wsProtocols: account.wsProtocols,
      wsPath: account.wsPath,
      map: prepareStreamResponse,
    )
        .then((socket) {
      // if not closed in meantime
      if (_state != XmppConnectionState.Closed) {
        setState(XmppConnectionState.SocketOpened);
        _socket = socket;
        socket.listen(handleResponse, onDone: handleConnectionDone);
        _openStream();
      } else {
        Log.d(TAG, 'Closed in meantime');
        socket.close();
      }
    });
  } catch (error) {
    Log.e(TAG, 'Socket Exception' + error.toString());
    handleConnectionError(error.toString());
  }
}