Lennon17 Postado 15 Dezembro, 2023 Compartilhar Postado 15 Dezembro, 2023 Estou tentando realizar a conexão via socket com js. utilizando o padrão do js faço assim: socket = new WebSocket('ws://192.168.1.73:3434'); Não conecta e gera erro no log assim: Conectado em: 14/12/23 21:43:20 Maquina: 192.168.1.73 Esperando por comandos. 14/12/2023 21:43:20 - ALERTA: Fim da Conexão com: 192.168.1.73 em: 14/12/23 21:43:20 Como seria a forma corretar para não acontecer "fim de conexão" ? 1 Link para o comentário Compartilhar em outros sites More sharing options...
brunofaria2356 Postado 15 Dezembro, 2023 Compartilhar Postado 15 Dezembro, 2023 Estou com o mesmo problema por incrivel que pareça, me retorna o mesma coisa, ela conecta mas quebra a conexao function enviarComandoTCP(comando) { return new Promise((resolve, reject) => { const port = 3434; const host = "192.168.0.102"; // Criação do socket TCP const socket = new JsonSocket(new net.Socket()); // Tenta conectar ao servidor socket.connect(port, host); // Lidando com eventos do socket socket.on("connect", () => { socket.sendMessage(comando); // Envia o comando ao servidor quando conectado }); socket.on("message", (resposta) => { socket.end(); // Encerra a conexão após receber a resposta resolve(resposta); // Resolve a Promise com a resposta do servidor }); socket.on("error", (erro) => { reject(erro); // Rejeita a Promise em caso de erro na conexão }); }); } 1 Link para o comentário Compartilhar em outros sites More sharing options...
Solution Lennon17 Postado 21 Dezembro, 2023 Autor Solution Compartilhar Postado 21 Dezembro, 2023 Não conseguir resolver no browser, mas com node.js sim, segue exemplo: const net = require('net') const client = new net.Socket() // PORT - 3434 // HOST - 127.0.0.1 client.connect(PORT, HOST, function () { console.log(`CONNECTED TO: [PORT: ${PORT}] [HOST: ${HOST}]`) client.write('ativo \r\n.\r\n') }) Segue exemplo básico com impressora: client.write('ESCPOS.Ativar() \r\n.\r\n') client.write('ESCPOS.imprimir("</zera></ce></linha_dupla></lf>EAN 8: 1234567</lf><ean8>1234567</ean8></pular_linhas></corte_total>") \r\n.\r\n') 2 Link para o comentário Compartilhar em outros sites More sharing options...
Juliano Gonçalves Postado 23 Janeiro Compartilhar Postado 23 Janeiro Com a mesma situação... tentando uma solução aqui tbm. Link para o comentário Compartilhar em outros sites More sharing options...
Juliano Gonçalves Postado 23 Janeiro Compartilhar Postado 23 Janeiro Dando uma garimpada, no fórum assunto sempre começa mas fica no ar... "deu certo falar com AcbrMonitor usando socket do JS ?" vou tentando se conseguir atualizo aqui. Link para o comentário Compartilhar em outros sites More sharing options...
Juliano Gonçalves Postado 23 Janeiro Compartilhar Postado 23 Janeiro JS até usar uma conexão socket, mas o navegador abre um handle de comunicação http, por isso não vai funcionar, pq ACBRMonitor não responde em conexão http. fiz um teste usando uns servidor de ponte feito em node.js, e funcionou App no navegador fala via socket(http) com o servidor de ponte(node.js) e o node js fala via(socket tcp)com ACBRMonitor. aí precisa avaliar se vale apena implementar este servidor de ponte. Link para o comentário Compartilhar em outros sites More sharing options...
Luiz Fernando Rodrigues Postado 24 Janeiro Compartilhar Postado 24 Janeiro 14 horas atrás, Juliano Gonçalves disse: JS até usar uma conexão socket, mas o navegador abre um handle de comunicação http, por isso não vai funcionar, pq ACBRMonitor não responde em conexão http. fiz um teste usando uns servidor de ponte feito em node.js, e funcionou App no navegador fala via socket(http) com o servidor de ponte(node.js) e o node js fala via(socket tcp)com ACBRMonitor. aí precisa avaliar se vale apena implementar este servidor de ponte. Bom dia Juliano. Fiz algo parecido. Implementei um servidor web local que recebe as requisições da minha aplicação web. Esta aplicação web estabelece as conexões sockets com o ACBrMonitor. Observo porém que performence não é das melhores. Atualmente estamos implementando uma aplicação desktop com todos os componentes do ACBr. Fizemos com que essa aplicação desktop permita as conexões websocket diretamente. A performance tem sido bem maior. De modo geral, o caminho é esse, ter uma ponte da aplicacação web com a máquina local. Se existe outra forma, não descobri ainda. 1 Link para o comentário Compartilhar em outros sites More sharing options...
Moderadores Juliomar Marchetti Postado 24 Janeiro Moderadores Compartilhar Postado 24 Janeiro 1 hora atrás, Luiz Fernando Rodrigues disse: Bom dia Juliano. Fiz algo parecido. Implementei um servidor web local que recebe as requisições da minha aplicação web. Esta aplicação web estabelece as conexões sockets com o ACBrMonitor. Observo porém que performence não é das melhores. Atualmente estamos implementando uma aplicação desktop com todos os componentes do ACBr. Fizemos com que essa aplicação desktop permita as conexões websocket diretamente. A performance tem sido bem maior. De modo geral, o caminho é esse, ter uma ponte da aplicacação web com a máquina local. Se existe outra forma, não descobri ainda. use o lib do acbr que nada mais é que uma dll no lugar do monitor. conforme já sugeri a ele 1 Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Link para o comentário Compartilhar em outros sites More sharing options...
Juliano Gonçalves Postado 25 Janeiro Compartilhar Postado 25 Janeiro Obg Juliomar, assim fica ok. Link para o comentário Compartilhar em outros sites More sharing options...
Recommended Posts
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 contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora