connect method
void
connect()
Implementation
void connect() {
if (_baseURL == null) {
return;
}
String urlString = _baseURL!;
if (urlString.startsWith("https://")) {
urlString = urlString.replaceFirst("https://", "wss://");
} else if (!urlString.startsWith("wss://")) {
urlString = "wss://$urlString";
}
try {
final uri = Uri.parse(urlString);
final headers = {
'Origin': 'https://api.bynn.com',
};
if (_sessionToken != null) {
headers['Authorization'] = 'Bearer $_sessionToken';
}
// Connect with the proper headers applied
_channel = IOWebSocketChannel.connect(
uri,
headers: headers,
);
_subscription = _channel!.stream.listen(
_onMessage,
onError: (error) {
_scheduleReconnect();
},
onDone: () {
if (state.isConnected) {
_scheduleReconnect();
}
},
);
_startPingTimer();
state = state.copyWith(
isConnected: true,
connectionFailed: false,
);
} catch (e) {
_scheduleReconnect();
}
}