Я пытался отправить двоичные данные через WebSocket напрасно.
Данные:
$buff=chr(1);
$buff.=chr(2);
$buff.=chr(0);
$buff.=chr(0);
$buff.=chr(0);
$buff.=chr(6);
$buff.=chr(1);
$buff.=chr(6);
$buff.=chr(0);
$buff.=chr(192);
$buff.=chr(0);
$buff.=chr(1);
Он работает с использованием PHP, но я не могу достичь того, чего хочу, используя PHP, я могу полагаться только на JavaScript.
PHP
Это отлично работает:
$length = strlen($this->buff);
$sent = socket_write($socket, $this->buff, $length);
JS
Этот не:
var data="<?= $buff ?>";
WEB_SOCKET_SWF_LOCATION="WebSocketMain.swf";
var ws= new WebSocket("ws://10.0.0.60:502");
ws.onopen=function(){
ws.send(data);
}
Желаемые данные для отправки:
01 02 00 00 00 06 01 06 00 C0 00 01
Данные, отправленные WebSocket:
47 45 54 20 2F 20 48 54 54 50 2F 31 2E 31 0D 0A 48 6F 73 74
3A 20 31 30 2E 30 2E 30 2E 36 30 3A 35 30 32 0D 0A 43 6F 6E
6E 65 63 74 69 6F 6E 3A 20 55 70 67 72 61 64 65 0D 0A 50 72
61 67 6D 61 3A 20 6E 6F 2D 63 61 63 68 65 0D 0A 43 61 63 68
65 2D 43 6F 6E 74 72 6F 6C 3A 20 6E 6F 2D 63 61 63 68 65 0D
0A 55 70 67 72 61 64 65 3A 20 77 65 62 73 6F 63 6B 65 74 0D
0A 4F 72 69 67 69 6E 3A 20 68 74 74 70 3A 2F 2F 6C 6F 63 61
6C 68 6F 73 74 0D 0A 53 65 63 2D 57 65 62 53 6F 63 6B 65 74
2D 56 65 72 73 69 6F 6E 3A 20 31 33 0D 0A 55 73 65 72 2D 41
67 65 6E 74 3A 20 4D 6F 7A 69 6C 6C 61 2F 35 2E 30 20 28 57 ...
Как я могу отправить правильные данные, используя WebSocket?
Задача ещё не решена.
Других решений пока нет …