handshake method
void
handshake({
- VoidCallback? callback,
Implementation
void handshake({VoidCallback? callback}) {
if (_advice.reconnect == Advice.none) return;
if (state != FayeClientState.unconnected) return;
_state = FayeClientState.connecting;
_initWebSocketChannel();
_logger.info('Initiating handshake with $baseUrl');
_sendMessage(
Message(
Channel.handshake,
version: bayeuxVersion,
supportedConnectionTypes: ['websocket'],
),
onResponse: (response) {
if (response.successful == true) {
_state = FayeClientState.connected;
_clientId = response.clientId;
_logger.info('Handshake successful: $_clientId');
_subscribeChannels(_channels.keys, force: true);
callback?.call();
} else {
_logger.info('Handshake unsuccessful');
setTimeout(
Duration(seconds: retry),
() => handshake(callback: callback),
);
_state = FayeClientState.unconnected;
}
},
);
}