Ir para conteúdo
  • Cadastre-se

dev botao

WebSocket


Ver Solução Respondido por lfrfernando.rodrigues,
  • Este tópico foi criado há 1925 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde.
Estou tentando enviar comandos para o ACBRMonitor Plus através de um socket estabelecido através de WebSocket Jquery. Estou conseguindo estabelecer a conexão mas não estou conseguindo enviar comandos.

Segue código abaixo:

$(document).ready(function() {

               var socket = new WebSocket('ws://127.0.0.1:3434');
                socket.send('ACBr.data');
                socket.onmessage = function(retorno) {
                    alert(retorno)
                }
                socket.onerror    = function(retorno){ alert("erro"); };
                socket.onclose     = function(retorno){ alert("conexão fechada"); };
});

 

Pelo ACBR Monitor, vejo que a conexão foi estabelecida pois nele é exibida a mensagem abaixo. Depois de alguns segundos a conexão é fechada automaticamente.

ACBrMonitor/ACBrNFeMonitor PLUS Ver. 0.1.8.11
Conectado em: 02/12/15 14:50:05
Máquina: 127.0.0.1
Esperando por comandos.
ALERTA: Fim da Conexão com: 127.0.0.1 em: 02/12/15 14:50:15

 

Pesquisei aqui no fórum, porém não encontrei nada neste sentido. Alguém já conseguiu fazer essa comunicação com sucesso.
Grato.

Fernando.

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...
Em 02/12/2015 at 18:14, lfrfernando.rodrigues disse:

Boa tarde. Já descobri o problema. Não me atentei sobre a string para terminar o comando CR+LF+CR+LF'.'CR+LF+CR+LF. Com o PHP direto deu certo. Agora estou tentando descobrir com fazer pelo javascript.

Fernando.

vc poderia postar como ficou seu script em php?

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...
Em 29/03/2016 at 11:42, Mauricio Xavier disse:

vc poderia postar como ficou seu script em php?

Bom dia Maurício. Desculpe a demora em responder. Formatei meu computador e não conectei no site. Vi sua mensagem somente hoje.

Segue abaixo um método em PHP do meu sistema responsável por ativar o SAT.

Veja se serve de exemplo. Abraços.

 

/* FUNÇÃO PARA ATIVAR O SAT */
    function ativarSATBO($hostAcbrMonitor, $portaAcbrMonitor, $cnpjEmitente, $codigoIbgeEstadoEmitente) {
        try {
            /* ANALISANDO CAMPOS OBRIGATÓRIOS */
            if (empty($hostAcbrMonitor)) { throw new Exception("Falha ao identificar o host do ACBr Monitor."); }
            else if (empty($portaAcbrMonitor)) { throw new Exception("Falha ao identificar a porta do ACBr Monitor."); }
            else if (empty($cnpjEmitente)) { throw new Exception("Falha ao identificar o CNPJ do emitente."); }
            else if (empty($codigoIbgeEstadoEmitente)) { throw new Exception("Falha ao identificar o código do IBGE do Estado do emitente."); }

            /* ESTABELECENDO UM NOVO SOCKET */
            $socket = socketBO($hostAcbrMonitor, $portaAcbrMonitor);

            /* ANALISANDO O STATUS DA CONEXÃO DO SOCKET */
            if ($socket["statusRetorno"] == "ERRO") { throw new Exception($socket["msgRetorno"]); }
            else {
                /* CHAMANDO RESPOSTA DA CONEXÃO DO SOCKET */
                $socket["socket"]->recv();

                $socket["socket"]->send("SAT.Ativar($cnpjEmitente,$codigoIbgeEstadoEmitente)"."\r\n.\r\n");
                $respostaFuncao = $socket["socket"]->recv();
                /* RETORNO DA FUNÇÃO */
                $retorno["statusRetorno"] = "SUCESSO";
                $retorno["msgRetorno"] = nl2br($respostaFuncao);
            }
        }
        catch (Exception $e) {
            $retorno["statusRetorno"] = "ERRO";
            $retorno["msgRetorno"] = "Falha ao ativar o SAT.";
            $retorno["msgErro"] = $e->getMessage();
        }
        return $retorno;
    }

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...
  • 2 semanas depois ...
  • 2 anos depois...
Em 22/06/2016 at 10:01, Chris Odahcam disse:

Olá, tudo bem ?

Vcs conseguíram conectar no MONITOR via socket pelo javascript e funcionou normalmente ?

Qual a biblioteca utilizaram ? e fizeram via browse ou nodejs ?

qualquer informação é bem vinda...

vlw

 

 

 

tambem tenho curiosidade...no evento ACBRDay do ano passado, que participamos questionei a comunicacao  via websocket e tinha entendido que nao seria uma opcao ainda...
Conseguem nos atualizar? ;)

Link para o comentário
Compartilhar em outros sites

meu JS ta meio enferrujado mas tente da seguinte maneira.

$(document).ready(function() {
  var socket = new WebSocket('ws://127.0.0.1:3434');
  socket.send('ACBr.data\r\n\r\n.\r\n\r\n');
  socket.onmessage = function(retorno) {
    alert(retorno)
  }
  socket.onerror    = function(retorno){ alert("erro"); };
  socket.onclose     = function(retorno){ alert("conexão fechada"); };
});

 

  • Curtir 2

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1925 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...