Lasciatemi fare un piccolo retroscena su quello che sto cercando di realizzare.C'è un modo per fare una connessione TCP ad un IP con javascript?
Ho un dispositivo (terminale di chip e pin) che ha un indirizzo IP locale, è stato programmato per ricevere determinati dati ed elaborarli.
esempio: invio la stringa "05"
nell'esagono "30 35"
e il terminale lo legge e si riavvierà.
Ho provato a utilizzare SockJS-Client e allo WebSockets integrato.
Tuttavia utilizzando WebSockets ho notato che il browser sta inviando:
GET/HTTP/1.1
Host: IP:PORT
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: MYIP
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Sec-WebSocket-Key: A1CeTMFnQCZv4GNZbLFnyQ==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Quando il mio codice è simile al seguente:
var exampleSocket = new WebSocket("ws://IP:PORT");
exampleSocket.send("05");
Se cambio il codice a questo:
var exampleSocket = new WebSocket("wss://IP:PORT");
exampleSocket.send("05");
Ho appena ricevuto 3 tag inviati: SYN(0x0016) ETX(0x0003) SOH(0x0001)
Ora non sono sicuro che sia necessario un server WebSocket per poter interpretare i dati in entrata.
SockJS fa la stessa cosa con l'invio di informazioni aggiuntive su se stessa e il broswer:
GET /info?t=1452272641278 HTTP/1.1
Host: IP:PORT
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
Origin: MYIP
Accept: */*
Referer: MYIP
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Quindi credo che la mia domanda è. C'è un modo per inviare esattamente quello che voglio? senza dati aggiuntivi?
Ho completato questo in Objective-C e C#, non sono sicuro se javascript può farlo?
Si prega di chiedere se qualcosa non è chiaro e cercherò di chiarire.
Perché è importante connettersi al dispositivo di rete locale tramite JS? Non sarebbe possibile farlo sul server e condurre la transazione tramite eventi AJAX? – Nathan
Seleziona un'altra lingua, solo di qualsiasi altra lingua, e la sua relativamente semplice, ma (browser) JavaScript semplicemente non lo fa in base alla progettazione. Altrimenti sarebbe un gioco da ragazzi portare a termine attacchi riflessi. – symcbean