connect method
void
connect()
Connect to WebSocket server
Implementation
void connect() async {
try {
_webSocket = await WebSocket.connect(webSocketUrl);
_webSocket.listen(
(message) async {
var event = jsonDecode(message);
if (event['event'] == 'pusher:connection_established') {
var data = jsonDecode(event['data']);
String socketId = data['socket_id'];
Response response = await _authenticateWebSocket(socketId, channelName);
_webSocket.add(
'{"event":"pusher:subscribe","data":{"auth":"${response.data['auth']}","channel":"$channelName"}}',
);
}
Map<String, dynamic> outerMap = jsonDecode(message);
if (outerMap['data'] != null) {
Map<String, dynamic> innerMap = jsonDecode(outerMap['data']);
if (innerMap['type'] != null) {
onEventReceived?.call(jsonEncode(innerMap));
}
}
_messageController.add(message);
},
onDone: () => reconnect(),
);
} catch (e) {
print("ERROR: $e");
reconnect();
}
}