Conexão WebSocket

Manu da Silva Atualizado por Manu da Silva

O WebSocket Server usa socketCluster na versão 9

  1. Estabelecendo a conexão com o WebSocket Server

    Para iniciar uma conexão de soquete, você precisará fazer o seguinte:
     const socket = socketCluster.connect(options);
    Onde options é um objeto com a seguinte estrutura:
    const options = {
    hostname: <hostName>, // Socket Server URL
    query:{
    channelUUID: <channelUuid>, // Push ChannelUuid
    hostApi:<hostApi> // Push hostApi URL
    }
    }
    Depois disso, o WebSocket Server observará eventos futuros, como registerUser esendMessageToChannel , que serão emitidos a partir da variável socket declarada.
  2. Registrando um usuário

    Antes de trocar mensagens, o usuário deve estar registrado, o registro do usuário deve ser a primeira coisa a ser feita após o estabelecimento da conexão.
    Para isso, um evento registerUser deve ser emitido, sem argumentos e com uma função de retorno de chamada. A função de retorno de chamada manipulará a seguinte resposta do WebSocket Server.
    Exemplo:
    socket.emit('registerUser', {}, (_response) => {
    const res = JSON.parse(_response);
    console.log(res.urn);
    });
    Exemplo de resposta
    { 
    urn: "xxxxxxxxxxx-xxxxxxxx"
    }
    O campo urn representa o id da Socket Session atual.
  3. Recebendo mensagens do WebSocket Server

    Após o registro do usuário, a Instância do socket atual deve ser assinada para manipular as mensagens do WebSocket Server. Exemplo de como se inscrever:
    socket.subscribe(sessionUrn, (data) => {
    if(data.to === sessionUrn) {//check msg destination
    console.log(data);
    }
    });
    Onde data é a resposta que a plataforma retorna.
  4. Enviando mensagens para o WebSocket Server

    Para enviar uma mensagem ao WebSocket Server, o sendMessageToChannel deve ser criado, com os seguintes argumentos:
    text: a mensagem de texto do usuário
    userUrn: o urn da mensagem recebido no cadastro do usuário
    Exemplo:
    socket.emit("sendMessageToChannel", {
    text: "Hello",
    userUrn: sessionUrn
    })

Como a gente se saiu?

Como criar um canal SMS - para desenvolvedores (RapidPro)

Conceitos Gerais de API e Integrações

Contato