connect method

void connect({
  1. required String socketUrl,
  2. required int appId,
  3. required dynamic onNewMessage(
    1. Map<String, dynamic>
    ),
})

Implementation

void connect({
  required String socketUrl,
  required int appId,
  required Function(Map<String, dynamic>) onNewMessage,
}) {
  if (_socket != null) {
    dispose();
  }

  _socket = socket_io.io(
    socketUrl,
    socket_io.OptionBuilder().setTransports(['websocket']).setExtraHeaders(
        {'appid': '$appId'}).build(),
  );

  _socket!.onConnect((_) {
    debugPrint('Socket CONNECTED → JOIN APP $appId');
    _socket!.emit('join-app', appId);
  });

  _socket!.on('NewMessage', (data) {
    // debugPrint("📩 Message received");
    if (data is Map<String, dynamic>) {
      onNewMessage(data);
    }
  });

  _socket!.onDisconnect((_) => debugPrint('Socket DISCONNECTED'));
  _socket!.onConnectError((err) => debugPrint('Socket ERROR: $err'));
}