connectSocket method
Implementation
connectSocket(String ticketId, List<EventHandler> handlers) {
if (kDebugMode) {
print('ChatSocketManager connected');
}
_socket = WebSocket(
ApiUrls.socketURL,
[ticketId],
)..onOpen.listen((e) {
if (kDebugMode) {}
_socket?.onMessage.listen((e) {
if (kDebugMode) {
print('socket:: ${e.runtimeType}');
}
var response = jsonDecode(e.data);
var event = response['event'];
var data = response['data'];
if (kDebugMode) {
print('socket:: ${data.runtimeType}, $event');
}
for (var element in handlers) {
if (kDebugMode) {
print('socket:: ${element.eventName == event}');
}
if (element.eventName == event) {
element.handler(data);
}
}
});
_socket?.onError.listen((event) {
Future.delayed(const Duration(seconds: 1),
() => connectSocket(ticketId, handlers));
});
});
}