handleMessage method

void handleMessage([
  1. dynamic messageEvent
])

Implementation

void handleMessage([dynamic messageEvent]) {
  String? message;
  if (globalSocketPlatform is IoSocketPlatform) {
    message = messageEvent;
  } else {
    message = messageEvent.data;
  }
  if (message == "#1") {
    sendOrAdd('#2');
  } else {
//      print('Message received: $message');

    var map = jsonDecode(message!);
    var data = map['data'];
    int? rid = map['rid'];
    int? cid = map['cid'];
    String? event = map['event'];

//      print('Event: $event, rid: $rid, cid: $cid, data: $data');

    switch (Parser.parse(data, rid, cid, event)) {
      case ParseResult.ISAUTHENTICATED:
//          print('IS authenticated got called');
        id = data['id'] as String?;
        bool? auth = data['isAuthenticated'] as bool?;
        if (listener != null) {
          listener!.onAuthentication(this, auth);
        }
        subscribeChannels();
        break;
      case ParseResult.PUBLISH:
        handlePublish(data['channel'] as String?, data['data']);
//          print('Publish got called');
        break;
      case ParseResult.REMOVETOKEN:
        authToken = null;
//          print('Removetoken got called');
        break;
      case ParseResult.SETTOKEN:
        if (listener != null) {
          listener!.onSetAuthToken(data['token'] as String?, this);
        }
//          print('Set token got called');
        break;
      case ParseResult.EVENT:
        if (hasEventAck(event)) {
          handleEmitAck(event, data, ack(cid));
        } else {
          handleEmit(event, data);
        }
        break;
      case ParseResult.ACKRECEIVE:
//          print('Ack receive got called');
        if (_acks.containsKey(rid)) {
          var mapObj = _acks[rid!];
          _acks.remove(rid);
          if (mapObj != null) {
            AckCall fn = mapObj[1];
            if (fn != null) {
              fn(mapObj[0] as String, map['error'], map['data']);
            } else {
//                print('Ack function is null');
            }
          }
        }
        break;
      default:
        throw new RangeError('Unknown ParseResult');
    }
  }
}