connectSocket method

dynamic connectSocket(
  1. String ticketId,
  2. List<EventHandler> handlers
)

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));
      });
    });
}