<h4>Servicio de Websocket</h4><p><br></p><p>URL y puerto: <a href="about:blank" rel="noopener noreferrer" target="_blank">Websocket</a></p><p>Carpeta con código: <a href="https://genniux.net/Socket" rel="noopener noreferrer" target="_blank">https://genniux.net/Socket</a></p><p><br></p><p>Importar y utilizar servicio</p><p><br></p><div class="ql-code-block-container" spellcheck="false"><div class="ql-code-block" data-language="plain">import { SocketService } from "src/app/services/socket.service";</div><div class="ql-code-block" data-language="plain"><br></div><div class="ql-code-block" data-language="plain"><br></div><div class="ql-code-block" data-language="plain">constructor(private chatService: SocketService,){</div><div class="ql-code-block" data-language="plain">   chatSub$.subscribe(msg =&gt; this.newMessage(msg), (err) =&gt; console.log("Error al conectar " + err), () =&gt; console.log("Desconectado"));</div></div><p><br></p><div class="ql-code-block-container" spellcheck="false"><div class="ql-code-block"> newMessage(notMessage) { // Función que recibe las mensajes del websocket</div><div class="ql-code-block">  if (notMessage.tipo == 'id') { // verificar el tipo de mensaje, ID significa que se hizo contacto por primera vez con el websocket</div><div class="ql-code-block"><br></div><div class="ql-code-block">      var newUser = {</div><div class="ql-code-block">        tipo: "user",</div><div class="ql-code-block">        id: notMessage.id,</div><div class="ql-code-block">        user: this.user.usuario,</div><div class="ql-code-block">        origen: this.user.origen,</div><div class="ql-code-block">        users: null,</div><div class="ql-code-block">        data: null,</div><div class="ql-code-block">        fecha: '',</div><div class="ql-code-block">        hora: '',</div><div class="ql-code-block">        remitente: this.user.usuario,</div><div class="ql-code-block">        app: "MasterSherpa",</div><div class="ql-code-block">        id_equipo: null</div><div class="ql-code-block">      };</div><div class="ql-code-block"><br></div><div class="ql-code-block">      /*       console.log("ENVIADO: " + JSON.stringify(newUser));</div><div class="ql-code-block">            this.chatService.send(newUser); */</div><div class="ql-code-block">      this.sendMessage(newUser);</div><div class="ql-code-block"><br></div><div class="ql-code-block">      } else if (notMessage.tipo == 'newComment' || notMessage.tipo == 'newMessage' || notMessage.tipo == 'newSupport' &amp;&amp; notMessage.app == "MasterSherpa") { // Este tipo indica que se recibió un mensaje para elchat</div><div class="ql-code-block"><br></div><div class="ql-code-block"><br></div><div class="ql-code-block">      this.playAudio();</div><div class="ql-code-block">      this.newComment = notMessage;</div><div class="ql-code-block"><br></div><div class="ql-code-block">      this.emitNotification("add", 1);</div><div class="ql-code-block">      if (this.user_type == "sherpa" || this.user_type == "creador") {</div><div class="ql-code-block">        console.log(notMessage.id_equipo);</div><div class="ql-code-block">        let tmpTeam = this.getTeam(notMessage.id_equipo);</div><div class="ql-code-block">        console.log(tmpTeam);</div><div class="ql-code-block">        if (tmpTeam != null) {</div><div class="ql-code-block">          console.log(JSON.stringify(this.teams[tmpTeam]));</div><div class="ql-code-block">          this.teams[tmpTeam].notificaciones++;</div><div class="ql-code-block">        }</div><div class="ql-code-block">      }</div><div class="ql-code-block"><br></div><div class="ql-code-block"><br></div><div class="ql-code-block">      let tmpCon = this.getConversation(notMessage.data.subeje);</div><div class="ql-code-block">      console.log(tmpCon);</div><div class="ql-code-block">      if (tmpCon.array != null) {</div><div class="ql-code-block">        //console.log(JSON.stringify(this.conversations[tmpCon]));</div><div class="ql-code-block">        //this.conversations[tmpCon].notificaciones++;</div><div class="ql-code-block">        tmpCon.array[tmpCon.index].notificaciones++;</div><div class="ql-code-block">        tmpCon.array[tmpCon.index].lastComment = notMessage.data.comment;</div><div class="ql-code-block">      }</div><div class="ql-code-block"><br></div><div class="ql-code-block">      if (this.selectedConversation != undefined &amp;&amp; this.selectedConversation.subeje.id_actividad == notMessage.data.subeje) {</div><div class="ql-code-block">        this.selectedConversation.notifications[notMessage.data.tipo]++;</div><div class="ql-code-block">      }</div><div class="ql-code-block"><br></div><div class="ql-code-block">    }</div><div class="ql-code-block">}</div></div><p><br></p><p>Preparar el envío de un mensaje en tiempo real:</p><p><br></p><div class="ql-code-block-container" spellcheck="false"><div class="ql-code-block">var dataMessage = {</div><div class="ql-code-block">              subeje: this.id,</div><div class="ql-code-block">              tipo: this.grupoTipo,</div><div class="ql-code-block">              usuario_supervisar: this.usuario_supervisar.wikiname,</div><div class="ql-code-block">              target: null,</div><div class="ql-code-block">              conversation: {</div><div class="ql-code-block">                subeje: { id: this.id },</div><div class="ql-code-block">                origen: "private"</div><div class="ql-code-block">              },</div><div class="ql-code-block">              comment: objEnviar</div><div class="ql-code-block"> };</div><div class="ql-code-block"><br></div><div class="ql-code-block"><br></div><div class="ql-code-block">var message = {</div><div class="ql-code-block">                id: res["newMessage"], // id del mensaje a enviar</div><div class="ql-code-block">                tipo: "newMessage", // Tipo de mensaje "NewMessage" para grupos, "newComment" para conversaciones privadas</div><div class="ql-code-block">                user: this.user.usuario, // Wikiname del autor del mensaje</div><div class="ql-code-block">                users: usuarios, //Usuarios a quien va dirigido (No aplica en grupos)</div><div class="ql-code-block">                data: dataMessage, // Mensaje de texto a enviar</div><div class="ql-code-block">                fecha: objEnviar["date"], // fecha actual</div><div class="ql-code-block">                hora: objEnviar["hour"], // hora actual</div><div class="ql-code-block">                origen: this.user.origen, // id de la empresa del autor</div><div class="ql-code-block">                id_grupo: this.conversation["group"]["id"], // id de la conversación grupal</div><div class="ql-code-block">                tipo_grupo: this.grupoTipo, // tipo de la conversación "entregable" | "actividad"</div><div class="ql-code-block">                id_pap: this.conversation["group"]["id_pap"], // id de la tabla que liga el grupo con un pap_sub_eje (actividad del programa de transformación)</div><div class="ql-code-block">                id_equipo: this.id_equipo, // id del equipo que está llevando a cabo el programa de transformación</div><div class="ql-code-block">                usuario_supervisar: this.usuario_supervisar.wikiname, // Usuario a quien se le da seguimiento (En caso de ser una conversación de entregable individual)</div><div class="ql-code-block">                app: "MasterSherpa" // app de donde proviene la notificación</div><div class="ql-code-block">              }</div></div><p><br></p><p><br></p><p>Enviar el mensaje</p><p><br></p><div class="ql-code-block-container" spellcheck="false"><div class="ql-code-block">              this.chatService.send(message);</div><div class="ql-code-block"><br></div></div><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p><p><br></p>