Позвольте мне немного рассказать о том, чего я пытаюсь достичь.
У меня есть устройство (чип и контактный терминал), которое имеет локальный IP-адрес. Оно запрограммировано на получение определенных данных и их обработку.
пример: я отправляю строку "05"
в шестнадцатеричном формате "30 35"
, и терминал читает это и перезагружается.
Я пытался использовать SockJS-Client, а также встроенный WebSockets.
Однако, используя Websockets, я замечаю, что браузер отправляет:
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
Когда мой код выглядит так:
var exampleSocket = new WebSocket("ws://IP:PORT");
exampleSocket.send("05");
Если я изменю код на это:
var exampleSocket = new WebSocket("wss://IP:PORT");
exampleSocket.send("05");
Я просто получаю 3 отправленных тега: SYN(0x0016) ETX(0x0003) SOH(0x0001)
Теперь я не уверен, нужен ли вам WebSocket Sever, чтобы иметь возможность интерпретировать входящие данные.
SockJS делает то же самое, отправляя дополнительную информацию о себе и браузере:
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
Итак, я думаю, мой вопрос. Есть ли способ просто отправить именно то, что я хочу? без лишних данных?
Я выполнил это как в Objective-C, так и в C#, я просто не уверен, что javascript может это сделать?
Пожалуйста, спрашивайте, если что-то неясно, и я постараюсь уточнить.