Se fizer ionic serve o meu site/app funciona correctamente como devia, colocando o resultado do www no public_html a app deixa de funcionar

sou novo na programação e ando a aprender a fazer sites/apps em IONIC 4. Até agora só fiz uma e ando encravado na parte de colocar on-line.

No desenvolvimento sempre que no terminal faço ionic serve a app corre normalmente fazendo os pedidos a uma api que funciona normalmente.

Mas quando faço ionic build --prod --release , copio o conteudo da pasta www e para um public_html do site de destino.

https://tarefasamostra.000webhostapp.com/tarefas

E ai deixa de funcionar e isto é o que aparece.

inserir a descrição da imagem aqui

NOTA: se entrar em https://tarefasamostra.000webhostapp.com/ ele encaminha para a pagina de tarefas a mesma pois ela esta definida por default como homepage, qualquer botão que se pressione ele exibe o erro que esta na imagem.

Será que me esta a escapar algo? quando testo no vscode ele funciona.

La hora no me guarda correctamente

lo que sucede es que estoy tratando de guardar la hora de la siguiente manera:

$  hoy = date("Y-m-d H:i:s"); 

El día me lo guarda correctamente, mientras que la hora me la guarda mal, ya que un ejemplo que realice, en mi computadora dice que son las 07:36 a.m mientras que en el formulario (que esta conectado con PHP y guardando en PhpMyAdmin) me guarda un horario con ventaja de 5 horas…

Y no he podido arreglarlo…

Si me colaboran muchas gracias.

TypeCaught Error: Por que no me funciona correctamente? #JS

Vereis, estoy intentando hacerle un innerHTML a un div que tengo declarado en el index pero no sé por qué narices no me está funcionando como debería. No consigo dar con el error así que dejo aqui el código a ver si alguien es capaz de identificarlo y tambien una captura del error que me devuelve la consola.

Código

let alquiler = { juegos:     [         {             caratula: "img/blood.jpg",             titulo: "BloodBorne",             desarrolladora: "From Software"         },         {             caratula: "img/gow.jpg",             titulo: "God Of War",             desarrolladora: "Sony Santa Monica"         }     ] };  let texto = ""; for (let i = 0; 0 < alquiler.juegos.length; i++) {     texto += "<div id='juego'><p>'" + alquiler.juegos[i].titulo + "'<p><img      src='" + alquiler.juegos[i].caratula + "'><p>Desarrolladora: '" +      alquiler.juegos[i].desarrolladora + "'</p></div>"; } console.log(texto); document.getElementById('juego').innerHTML = texto; 

error

system (“clear”) no funciona correctamente

Buen día, estoy creando un código en C que me permita obtener información sobre los productos que se han vendido en un día en una tienda. Sucede que cuando el usuario ingresa una opción de Categoría inválida, el código limpia la pantalla y vuelve a pedir la información.

Este es el código:

#include <stdio.h> //Standard input-output #include <stdlib.h> #include <stdbool.h>  void mensaje_inicial() {  printf("\t\tEjercicio 4\n"); printf("\n"); //Obtencion de la informacion printf("Los productos pertenecen a tres categorias:\n"); printf("Categoria A: 20.000 y 80.000\n"); printf("Categoria B: 8.000 y 50.000\n"); printf("Categoria C: 100.000 y 200.000\n");  printf("Nota: Para ingresar la categoria, debe elegir letras     mayusculas.\n"); printf("Ejemplo: A, B o C."); printf("\n"); printf("Para ingresar el valor del articulo, no utilice ni puntos ni     comas.\n"); printf("Ejemplo: Si desea ingresar 100.000 pesos, ingrese: 100000"); printf("\n"); } int main (){  int cantidad_vendida = 0;  mensaje_inicial();  //Obtencion de la cantidad de productos vendidos printf("Ingrese la cantidad de productos vendidos en el dia: "); scanf("%i", &cantidad_vendida); printf("\n");  //Creacion de arrays para el almacenamiento de valores //1. Nombres char nombres[cantidad_vendida][100]; char nombre;  //2. Id de productos char id_producto[cantidad_vendida][100];  //3. Categoria del productos char categoria_producto[cantidad_vendida]; char categoria;  //4. Valor del producto //int valor_producto[cantidad_vendida]; //float valor = 0.0;  //Obtencion del nombre del producto for (int i = 0; i < cantidad_vendida; i++) {   printf("\n");   //Obtiene el nombre del producto   printf("Ingrese el nombre del producto %i: ", i+1);   scanf(" %s", &nombres[i]);    //Obtiene el id del producto   printf("Ingrese el id del producto %i: ", i+1);   scanf(" %s", &id_producto[i]);    //Obtiene la categoria del producto   //getchar();   bool verificacion = false;   while(verificacion == false){     printf("Ingrese la categoria del producto %i: ", i+1);     scanf(" %c", &categoria);     getchar();     if ((categoria == 'A')||(categoria == 'B')||(categoria == 'C')) {       verificacion = true;     } else {       system ("clear"); //Se usa clear porque cls no es portable       mensaje_inicial();       printf("\n");       printf("No ha ingresado una categoria correcta.\n");     }   }   categoria_producto[i]=categoria; }  //IMPRESION DE TODA LA INFORMACION for (int i = 0; i < cantidad_vendida; i++) {   printf("ELEMENTO %i\n", i+1);   printf("Nombre: %s\n", nombres[i]);   printf("Id: %s\n", id_producto[i]);   printf("Categoria: %c\n", categoria_producto[i]); }  return 0; } 

Cuando la persona no ingresa una opción correcta, limpio la pantalla e imprimo el mensaje inicial nuevamente pero por algún motivo aún queda una línea de texto en la parte superior de la pantalla y no logro entender por qué ya que esa línea debió ser eliminada luego de haber ejecutado system ("clear") y antes de solicitar que ingrese una opción correcta nuevamente…

Vean la primera línea:

Ver la primera línea

Muchas gracias de antemano!

No consigo que el $_FILE me suba el archivo correctamente

El problema es que yo he creado el siguiente formulario:

<form action="" method="get"> 	<div class="select"> 		<input name="u" type="radio" value="meme" class="memeSelect" <?php echo $  selectMeme ?>> 		<label for="meme">Meme</label> 		<input name="u" type="radio" value="plantilla" class="plantillaSelect" <?php echo $  selectPlantilla ?>> 		<label for="plantilla">Plantilla</label> 		<input type="submit" class="invisible selectMemePlantilla"> 	</div> </form>  <form enctype="multipart/form-data" action="<?php echo htmlspecialchars($  _SERVER["PHP_SELF"]); ?>" method="post"> 	<div class="meme <?php echo $  invisibleMeme ?>"> 		<input type="hidden" name="MAX_FILE_SIZE" value="20000"/> 		<input type="file" class="file" name="file" accept="image/png, image/jpeg, image/gif, image/pjpeg"> 		<h2>Elije las clases para el meme</h2> 		<div class="clases"> 			<input type="checkbox"> 			<input type="checkbox"> 			<input type="checkbox"> 			<input type="checkbox"> 		</div> 		<span><?php echo $  error ?></span> 		<input type="submit" name="uploadBtn" value="Upload"> 	</div> 	<div class="plantilla <?php echo $  invisiblePlantilla ?>"> 		<input type="hidden" name="MAX_FILE_SIZE" value="20000"/> 		<input type="file" class="file" name="file" accept="image/png, image/jpeg, image/gif, image/pjpeg"> 		<h2>Elije las clases para la plantilla</h2> 		<div class="clases"> 			<input type="checkbox"> 			<input type="checkbox"> 			<input type="checkbox"> 			<input type="checkbox"> 		</div> 		<span><?php echo $  error ?></span> 		<input type="submit" name="uploadBtn" value="Upload"> 	</div> </form>

Como podrán ver la pagina para subir las imágenes tiene primero un formulario get para ir a la pagina de subir memes o plantillas y luego un post para subir las imágenes al servidor.

El primer formulario funciona perfectamente, pero el segundo no, siempre me salta el error 4 que no se ha subido ningún archivo.

Creé otro archivo para ver si había algún problema con el servidor o algo pero todo funcionaba bien. El problema debe estar en intentar usar el get, pero no se como arreglarlo.

El PHP para el formulario de subir imágenes:

if (isset($  _POST['uploadBtn']) && $  _POST['uploadBtn'] == 'Upload') {     if (isset($  _FILES['file']) && $  _FILES['file']['error'] === UPLOAD_ERR_OK) {          $  fileTmpPath           = $  _FILES['file']['tmp_name'];         $  fileName              = $  _FILES['file']['name'];         $  fileSize              = $  _FILES['file']['size'];         $  fileType              = $  _FILES['file']['type'];         $  fileNameCmps          = explode(".", $  fileName);         $  fileExtension         = strtolower(end($  fileNameCmps));         $  newFileName           = md5(time() . $  fileName) . '.' . $  fileExtension;         $  allowedfileExtensions = array('jpg', 'gif', 'png', 'zip', 'txt', 'xls', 'doc');         echo $  fileName;          if (in_array($  fileExtension, $  allowedfileExtensions)) {             $  uploadFileDir = 'img/';             $  dest_path = $  uploadFileDir . $  newFileName;             echo "vamoos";              if(move_uploaded_file($  fileTmpPath, $  dest_path)) {                 $  message ='File is successfully uploaded.';                 $  _SESSION['message'] = $  message;                 echo $  message;             }             else {                 $  message = 'There was some error moving the file to upload directory. Please make sure the upload directory is writable by web server.';                 $  _SESSION['message'] = $  message;                 echo "3";             }         }     }else {echo "algo no funciona1"; } }else {echo "algo no funciona"; }  

Y el de abajo es el del formulario get:

$  selectMeme = $  selectPlantilla = "";     $  invisibleMeme = $  invisiblePlantilla = "invisible";     $  error = $  selected = "";     if ( isset($  _GET['u']) ) {          if ( $  _GET['u'] == "meme" ) {             $  selected           = "memes";             $  selectMeme         = "checked";             $  invisibleMeme      = "";             $  selectPlantilla    = "";             $  invisiblePlantilla = "invisible";          } else {             $  selected           = "plantillas";             $  selectPlantilla    = "checked";             $  invisiblePlantilla = "";             $  selectMeme         = "";             $  invisibleMeme      = "invisible";         }     } 

Unity – Métodos de botones no se establecen correctamente

Tratare ser lo mas especifico posible.

Estoy creando la galería de un visualizador de vídeos .mp4 y fotos .jpg en Unity; En la galería si selecciono el botón Add, me abre un explorador donde yo podre buscar el archivo foto o vídeo y guardar la referencia para asignarlo al botón, si por ejemplo agrego un vídeo y le doy reproducir funciona sin problemas, si hago el mismo procedimiento en otro botón con lo mencionado anteriormente pero esta vez agregando una foto igual se reproduce sin problemas.

Captura de cuando agrego un video:

introducir la descripción de la imagen aquí

Captura de cuando agrego una foto:

introducir la descripción de la imagen aquí

Mi problema esta en cuando ya tengo agregado ya reproduje la foto y quiero volver a reproducir el vídeo ya no me deja reproducirlo porque de alguna forma el botón tiene asignado el método para reproducir fotos, si agrego mas fotos no hay problema. los mismo pasa si agrego primero fotos y después vídeos.

Realmente no encuentro como solucionarlo, llevo aproximadamente 3 días atorado con este problema.

Adjunto los códigos con los que estoy trabajando.

Clase 1:

public GameObject _photoSphere; public GameObject _videoSphere;  public TextMeshProUGUI[] _buttonFileName;  //Botones para la interfaz, agregar, borrar y plays public Button[] _addFile; public Button[] _deleteFile; public Button[] _playFile;  //Iconos para los archivos public SVGImage[] _photoIcon; public SVGImage[] _videoIcon;  #region Metodos para inicializacion  private void Start() {     AddFileListenerOnClick();     DeleteFileListenerOnClick();     PlayFilesOnClick();         }  #endregion  #region Metodos para botones  //Asiganamos metodo para abrir el explorador de archivo al Metodo OnClick _addFile basandonos en el index seleccionado public void AddFileListenerOnClick() {     for ( int i = 0; i < _addFile.Length; i++ )     {         int tempInt = i + 0;         _addFile[i].onClick.AddListener( () => _vRMEDExplorerScript.OpenFileBrowser( tempInt ) );     } }  public void DeleteFileListenerOnClick() {     for (int i = 0; i < _addFile.Length; i++)     {         int tempInt = i + 0;         //_deleteFile[i].onClick.AddListener(() => _galleryControlsRPC.DeleteFileName(tempInt));     } }  //Asiganamos metodo para reproducir archivo al Metodo OnClick de PlayFliesOnClick basandonos en el index seleccionado public void PlayFilesOnClick() {     for (int i = 0; i < _playFile.Length; i++)     {         int tempInt = i + 1;         _playFile[i].onClick.AddListener(() => PlayFile(tempInt));     } }  //Metodo que manda la instruccion de reproducir public void PlayFile(int playIndex) {     var video = Array.FindIndex(_loadVideoFileScript._videoFiles, row => row.Contains(".mp4"));     var photo = Array.FindIndex(_loadPhotoFileScript._photoFiles, row => row.Contains(".jpg"));      if (_galleryControlsRPC.isVideo == true)     {         for (int i = 0; i < _loadVideoFileScript._videoFiles.Length; i++)         {             if (video == i)             {                 VideoReady(playIndex);             }         }     }      else if (_galleryControlsRPC.isPhoto == true)     {         for (int i = 0; i < _loadPhotoFileScript._photoFiles.Length; i++)         {             if (photo == i)             {                 PhotoReady(playIndex);             }         }     } }  private void VideoReady(int videoReadyIndex) {             _galleryControlsRPC._filePlayIndex = videoReadyIndex;     _galleryControlsRPC.SendRpcSetPlayVideo(_galleryControlsRPC._filePlayIndex);      _photoSphere.SetActive(false);     _videoSphere.SetActive(true); }  private void PhotoReady(int photoReadyIndex) {             _galleryControlsRPC._filePlayIndex = photoReadyIndex;     _galleryControlsRPC.PlayPhoto(_galleryControlsRPC._filePlayIndex);     _ClassPlayer._VRMEDPlayer.CloseVideo();      _photoSphere.SetActive(true);     _videoSphere.SetActive(false); }  //Este metodo se encarga de buscar en la lista principal los archivos con extencion //.jpg y mp4 para almacenarlos en sus respectivas listas public void AddFileToPlay() {     if (_loadVideoFileScript._videoFiles[_galleryControlsRPC._fileExplorerIndex].Contains(".mp4"))     {         for (int i = 0; i < _loadVideoFileScript._videoFiles.Length; i++)         {             _videoIcon[_galleryControlsRPC._fileExplorerIndex].enabled = true;             _photoIcon[_galleryControlsRPC._fileExplorerIndex].enabled = false;         }     }      else if (_loadPhotoFileScript._photoFiles[_galleryControlsRPC._fileExplorerIndex].Contains(".jpg"))     {         for (int i = 0; i < _loadPhotoFileScript._photoFiles.Length; i++)         {             _videoIcon[_galleryControlsRPC._fileExplorerIndex].enabled = false;             _photoIcon[_galleryControlsRPC._fileExplorerIndex].enabled = true;         }     }     //_result = _photoFiles.ToList().Concat(_videoFiles.ToList()).ToArray(); } 

Clase 2:

public string _filePath;  [SyncVar] public string _file; [SyncVar] public int _filePlayIndex; [SyncVar] public int _fileExplorerIndex;  public bool isVideo; public bool isPhoto;  #endregion  #region Metodos de inicializacion  private void Start() {     FileBrowser.AddQuickLink( "Contenidos", _filePath, null );     _filePlayIndex = 1; }  #endregion  public void SendRpcSetFileName( int serverOption ) {     if (isServer)     {         RpcSetFileName( serverOption );     }     SetFileName( serverOption ); }  [ClientRpc] private void RpcSetFileName( int rpcOption ) {     SetFileName( rpcOption ); }  //Metodo que extrae el nombre del archivo seleccionado en el explorador, la asigna en una variable temporal, asigna su formato //y al momento de aceptar en el boton del explorador lo sincronizara en todos los clientes private void SetFileName( int option ) {     _galleryControlsScript._buttonFileName[_galleryControlsRPC._fileExplorerIndex].text          = _fileBrowserScript.filenameInputField.text;      if ( option == _galleryControlsRPC._fileExplorerIndex && _fileBrowserScript.filenameInputField.text.Contains( ".mp4" ) )     {         isVideo = true;         isPhoto = false;         //Obtenemos el nombre del archivo con su extencion         _galleryControlsScript._buttonFileName[_galleryControlsRPC._fileExplorerIndex].text              = _fileBrowserScript.filenameInputField.text.Replace( ".mp4", string.Empty ) ;          //Obtenemos el nombre del archivo, le quitamos la extencion .mp4 y la asignamos al texto del boton seleccionado//asignamos el nombre del archivo a la variable _file         _file = _galleryControlsScript._buttonFileName[_galleryControlsRPC._fileExplorerIndex].text + ".mp4";          //y la agregamos a la lista general de archivos agregandole nuevamente su extencion .mp4         _loadVideoFileScript._videoFiles[_galleryControlsRPC._fileExplorerIndex] = _file;          Debug.Log( "Nombre del archivo: " + _file + " " + " index del explorador: " + _galleryControlsRPC._fileExplorerIndex + " e indes de reproduccion " + _filePlayIndex );         Debug.Log( "Es Video" );     }     else if ( option == _galleryControlsRPC._fileExplorerIndex && _fileBrowserScript.filenameInputField.text.Contains( ".jpg" ) )     {         isPhoto = true;         isVideo = false;         //Obtenemos el nombre del archivo con su extencion         _galleryControlsScript._buttonFileName[_galleryControlsRPC._fileExplorerIndex].text              = _fileBrowserScript.filenameInputField.text.Replace(".jpg", string.Empty);          //Obtenemos el nombre del archivo, le quitamos la extencion .mp4 y la asignamos al texto del boton seleccionado//asignamos el nombre del archivo a la variable _file         _file = _galleryControlsScript._buttonFileName[_galleryControlsRPC._fileExplorerIndex].text + ".jpg";          //y la agregamos a la lista general de archivos agregandole nuevamente su extencion .mp4         _loadPhotoFileScript._photoFiles[_galleryControlsRPC._fileExplorerIndex] = _file;         Debug.Log( "Nombre del archivo: " + _file + " " + " index del explorador: " + _galleryControlsRPC._fileExplorerIndex + " e indes de reproduccion " + _filePlayIndex );         Debug.Log( "Es Foto" );     } }  public void SendRpcSetPlayVideo( int serverOption ) {     if ( isServer )     {         RpcSetPlayVideo( serverOption );     }     SetPlayVideo( serverOption ); }  [ClientRpc] public void RpcSetPlayVideo( int rpcOption ) {     SetPlayVideo( rpcOption ); }  //Metodo que manda a reproducir video por red public void SetPlayVideo( int option ) {     _loadVideoFileScript.LoadVideo( _filePlayIndex );                       }  //Metodo que manda a reproducir video por red public void PlayPhoto( int option ) {     _loadPhotoFileScript.PhotoLoader( _filePlayIndex ); }  public void GetFileBrowserComponent() {     GameObject file = GameObject.FindGameObjectWithTag( "fileExplorer" );     _fileBrowserScript = file.GetComponent<FileBrowser>(); 

Clase 3:

   #region Metodos para Exporador de archivos  //Metodo que se encarga de inicializar los metodos de instanciado del //explorador, obtener los botones "OK" y "Cancel" del explorador. //Tambien hace un seguimiendo del boton seleccionado basandose de un index //y busca el ta "fileExplorer" para mas adelante poder destruirlo public void OpenFileBrowser(int buttonIndex) {     Debug.Log("Boton de explorador = " + buttonIndex);     InstantiateExplorer(buttonIndex);     GetButtonExplorer();     _galleryControlsRPC._fileExplorerIndex = buttonIndex;     _destroyExplorer = GameObject.FindGameObjectWithTag("fileExplorer");     GetFileBrowserComponent();     _galleryControlsRPC.GetFileBrowserComponent();     _fileBrowserScript.GetScripts(); }  //Obtenermos los botones "OK" y "Cancelar" en base a su nombre de tag //y se les agrega el metodo que destruira el explorador public void GetButtonExplorer() {     //Obtenermos el boton cancelar     GameObject getCancelButton = GameObject.FindGameObjectWithTag("buttonCancel");     _cancelButton = getCancelButton.GetComponent<Button>();     if ( _disableButtons )     {         _cancelButton.onClick.AddListener(() => StartCoroutine(ExplorerDestroy()));         _cancelButton.onClick.AddListener(() => _disableButtons.EnableDeleteButton(_galleryControlsRPC._fileExplorerIndex));     }      //Obtenemos el boton aceptar     GameObject getSubmitButton = GameObject.FindGameObjectWithTag("buttonOk");     _submitButton = getSubmitButton.GetComponent<Button>();     if (_galleryControlsRPC && _disableButtons && _galleryControlsScript )     {         _submitButton.onClick.AddListener(() => _galleryControlsRPC.SendRpcSetFileName(_galleryControlsRPC._fileExplorerIndex));         _submitButton.onClick.AddListener(() => StartCoroutine(ExplorerDestroy()));         _submitButton.onClick.AddListener(() => _disableButtons.DisableAddButton(_galleryControlsRPC._fileExplorerIndex));         _submitButton.onClick.AddListener(() => _galleryControlsScript.AddFileToPlay());     } }  //Metodo que destruye el explorador public IEnumerator ExplorerDestroy() {     yield return new WaitForSeconds(0.01f);     DestroyImmediate(_destroyExplorer); }  //Metodo que crea una instancia del explorador de archivos private void InstantiateExplorer(int index) {     GameObject goElement = (GameObject)Instantiate(_fileExplorer);     goElement.transform.localScale = new Vector3(1, 1, 1);     goElement.name = "FileBrowser_" + index; }  //Buscamos el explorador de archivos por su nombre de tag public void GetFileBrowserComponent() {     GameObject file = GameObject.FindGameObjectWithTag("fileExplorer");     _fileBrowserScript = file.GetComponent<FileBrowser>(); }  #endregion 

¿Por qué este bucle no actualiza correctamente este array?

Intento hacer un bucle que añada al array fibSeq = [0,1] la suma de los dos numeros anteriores .

Es decir el resultado con 6 iteraciones debería ser este: fibSeq = [0,1,1,2,3,5,8,13]

Sin embargo el mio no actualiza:

function fib(num){ 	var fibSeq = [0,1]; 	var elultimo = fibSeq.length -1 	var elanterior = elultimo - 1 	var suma = elultimo + elanterior 	 	for (var i = 0; i < num; i++){ 		fibSeq.push(suma) 			} 	return fibSeq }  fib(6)

Y da como resultado fibSeq = [0,1,1,1,1,1,1]

He probado a incluir las declaraciones dentro del bucle

function fib(num){ 	var fibSeq = [0,1]; 	var elultimo = fibSeq.length -1 	var elanterior = elultimo - 1 	var suma = elultimo + elanterior 	 	for (var i = 0; i < num; i++){ 		elultimo = fibSeq.length -1 		elanterior = elultimo - 1 		suma = elultimo + elanterior 		fibSeq.push(suma) 			} 	return fibSeq }  fib(6)

Pero entonces me da unos numeros raros, no los que quiero (los que quiero son los fibonacci) : [0, 1, 1, 3, 5, 7, 9, 11]

Agradecería una explicación de porqué el bucle no se actualiza en vez de una solución de como obtener los numeros fibonacci ya que ando haciendo esto para aprender JS e intento evitar soluciones completas porque si no no aprendo. Gracias.

¿Por qué no sale reportviewer cuando estoy enviando parametros correctamente?

Buenas tengo éste código que lo que hace es mandar a llamar un tableadapter, mandar su parametro para llenar el datatable en el dataset, cuando envio los parametros todo carga bien pero cuando empieza a cargar el reportviewer sale éste mensaje. (En el reporte tengo un tablix que se llena con los campos de “CamposConsolidado” y su origen de datos es el dataset.) introducir la descripción de la imagen aquí

Aquí está el codigo que utilizo para enviar el parametro al TableAdapter. introducir la descripción de la imagen aquí Muchas gracias. Posdata: Ignoren el if(true) haha, estaba haciendo más pruebas.

Como saber si un mensaje en Discord.js se envió correctamente?

Como puedo hacer para ver si un mensaje enviado por un bot usando Discord.js se ha enviado correctamente?.

Actualmente hago esto:

function enviarmensaje(message){ var generalChannel = client.channels.get(*****) generalChannel.send(message) } 

pero con ese codigo no puedo manejar los posibles errores que ocurran, hay alguna forma de poder hacerlo como con las promesas?.. ej: var resultado = await enviarmensaje(message);

Necesito esto porque cuando el bot envia un mensaje hay veces que falla la conexion a internet y dicho mensaje no se envia.

Lo unico que logre hacer, fue captar los eventos no manejados.. pero de nada me sirve si no se cual mensaje fue el que no se envio:

0|Sofi  | Rechazo no manejado en: Error: read ECONNRESET 0|Sofi  |     at TLSWrap.onStreamRead (internal/stream_base_commons.js:162:27) 0|Sofi  | Rechazo no manejado en: Error: read ECONNRESET 0|Sofi  |     at TLSWrap.onStreamRead (internal/stream_base_commons.js:162:27)