通过Chrome中的WebSocket发送二进制字符串

时间:2017-09-12 08:23:17

标签: javascript php tcp websocket binary

我一直试图通过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发送正确的数据?

0 个答案:

没有答案