workerman在前台用websocket发送二进制,后台怎样接收数据

double_luo
6297 2 0
2个回答

walkor 打赏

不管是什么文本还是二进制数据,都是在onMessage里接收,没有区别。

如果是websocket协议,发送二进制数据需要设置一个标记位,参考手册http://doc.workerman.net/315305

  • double_luo 2017-06-29

    已经发送成功了,我直接在onMessage里面接收的,也成功了,但是他有大小设置,我设置了$connection->maxSendBufferSize但是还是报错,这个问题遇到过没有???

  • wsc218 2019-08-29

    接收成功数据会出现不完整的情况么,有没有对数据做处理?

double_luo
<!doctype html>
<html lang="en">
<head>
    <title>Document</title>
    <input type='file' name='img' onchange='showlist(this.files)'/>
</head>
<body>
<script>
function showlist(files)
{
    var reader = new FileReader();
    var result;
    var file=files;
    reader.onload = function() 
    {
        result = this.result;
    }
    reader.readAsBinaryString(file);

            var ws = new WebSocket('ws://192.168.2.183:1234');
            ws.onopen = function()
            {
            var uid = 'uid2';
            ws.send(file);
            };
            ws.onmessage = function(e)
            {
            console.log(e.data);
            };

}

</script>

<script>

</script>
</body>
</html>
  • double_luo 2017-06-29

    这就是发送blob格式,然后后台直接可以接收的,但是有大小限制怎么解决

年代过于久远,无法发表回答
×
🔝