Swoole从入门到入土(19)——WebSocket服务器[文件传输]

本文介绍了如何使用WebSocket进行文件传输,包括客户端发送文件和服务器接收,以及服务器发送文件到客户端。在客户端,文件被分割并通过WebSocket发送,服务端接收到二进制数据后推送回客户端。同时,文章涉及了在JavaScript中处理接收到的二进制数据,包括判断数据是UTF-8还是GBK并转换为字符串。

要利用WebSocket进行文件传输,我们需要讨论两种情况,分别是:发送方可以是客户端,和 发送方是服务端。

1、发送方是客户端 

1)服务端接收

$server->on('message', function (Swoole\WebSocket\Server $server, $frame) {
    switch ($frame->opcode)
    {
        case 0x09:
            $pongFrame = new Swoole\WebSocket\Frame;
            $pongFrame->opcode = WEBSOCKET_OPCODE_PONG;
            $server->push($frame->fd, $pongFrame);
            echo "pone\n";
            break;
        case 0x08:
            echo "Close frame received: Code {$frame->code} Reason {$frame->reason}\n";
            break;
        case 0x01:
            echo "Text string\n";
            break;
        case 0x02:
            echo "Binary data\n";
            //服务端在这里接收,$frame->data即是客户端发过来的文件二进制数据
            $server->push($frame->fd,$frame->data,WEBSOCKET_OPCODE_BINARY);
            break;
        default:
            $server->push($frame->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值