sendMensajeSocketService method

Future<Map<String, dynamic>> sendMensajeSocketService({
  1. required String endpointSocket,
  2. required String idChannel,
  3. required Map<String, dynamic> payload,
})

Implementation

Future<Map<String, dynamic>> sendMensajeSocketService({
  required String endpointSocket,
  required String idChannel,
  required Map<String, dynamic> payload,
}) async {
  try {
    if (!_channels.containsKey(endpointSocket)) {
      throw 'El socket no esta inicializado para el endpoint $endpointSocket';
    }

    if (wSocketDataProvider.getServerStatus(endpointSocket: endpointSocket) ==
        SocketServerStatus.offline) {
      throw 'No hay conexion con el servidor ${wSocketDataProvider.getServerStatus(endpointSocket: endpointSocket)}';
    }

    final message = {
      'action': 'mensaje',
      EnvironmentApiRest.socketChannel: idChannel,
      'payload': payload,
    };

    _sendMessage(endpointSocket, message);
    wSocketDataProvider.setDataSent(payload);

    return {
      EnvironmentApiRest.dataOk: 'OK',
      EnvironmentApiRest.data: 'Mensaje enviado'
    };
  } catch (error) {
    return {
      EnvironmentApiRest.dataNOk: 'NOk',
      EnvironmentApiRest.data: error.toString()
    };
  }
}