Lassen Sie mich ein wenig Hintergrundinformationen darüber geben, was ich erreichen möchte.Gibt es eine Möglichkeit, eine TCP-Verbindung zu einer IP mit Javascript zu machen?
Ich habe ein Gerät (Chip und Pin Terminal), das eine lokale IP-Adresse hat, Es wurde programmiert, bestimmte Daten zu empfangen und zu verarbeiten.
Beispiel: Ich sende die Zeichenfolge "05"
in hex "30 35"
und das Terminal liest das und wird neu gestartet.
Ich habe versucht mit SockJS-Client sowie die eingebaute WebSockets.
jedoch mit Websockets Ich stelle fest, dass der Browser sendet:
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
Wenn mein Code sieht wie folgt aus:
var exampleSocket = new WebSocket("ws://IP:PORT");
exampleSocket.send("05");
Wenn ich ändern, um diese den Code:
var exampleSocket = new WebSocket("wss://IP:PORT");
exampleSocket.send("05");
Ich bekomme nur 3 Tags, die gesendet werden: SYN(0x0016) ETX(0x0003) SOH(0x0001)
Jetzt bin ich mir nicht sicher, ob Sie einen WebSocket Server benötigen, um die eingehenden Daten interpretieren zu können.
SockJS macht das Gleiche durch zusätzliche Informationen über sich selbst zu senden und die 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
Also ich denke, meine Frage ist. Gibt es eine Möglichkeit, genau das zu schicken, was ich will? ohne zusätzliche Daten?
Ich habe dies in Objective-C sowie C# abgeschlossen, ich bin nur nicht sicher, ob Javascript das tun kann?
Bitte fragen Sie, wenn etwas unklar ist, und ich werde versuchen, zu klären.
Warum ist es wichtig, eine Verbindung mit dem lokalen Netzwerkgerät über JS herzustellen? Wäre es nicht möglich, dies auf dem Server zu tun und die Transaktion über AJAX-Events durchzuführen? – Nathan
Wählen Sie eine andere Sprache, fast jede andere Sprache, und es ist relativ einfach, aber (Browser) JavaScript tut dies einfach nicht durch Design. Sonst wäre es ein Kinderspiel, reflektierte Angriffe auszuführen. – symcbean