要利用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->

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

被折叠的 条评论
为什么被折叠?



