初始化-安装依赖
This commit is contained in:
51
server/plugin/saipackage/app/controller/IndexController.php
Normal file
51
server/plugin/saipackage/app/controller/IndexController.php
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\saipackage\app\controller;
|
||||
|
||||
use plugin\saiadmin\basic\OpenController;
|
||||
use Saithink\Saipackage\service\Terminal;
|
||||
use support\Request;
|
||||
use support\Response;
|
||||
use Throwable;
|
||||
use Workerman\Protocols\Http\ServerSentEvents;
|
||||
|
||||
class IndexController extends OpenController
|
||||
{
|
||||
/**
|
||||
* 执行终端
|
||||
* @param Request $request
|
||||
* @return void
|
||||
* @throws Throwable
|
||||
*/
|
||||
public function terminal(Request $request): void
|
||||
{
|
||||
// SSE 消息
|
||||
$connection = $request->connection;
|
||||
$connection->send(new Response(200, [
|
||||
'Content-Type' => 'text/event-stream',
|
||||
'Cache-Control' => 'no-cache',
|
||||
'Connection' => 'keep-alive',
|
||||
'X-Accel-Buffering' => 'no',
|
||||
'Access-Control-Allow-Origin' => '*',
|
||||
'Access-Control-Allow-Credentials' => 'true',
|
||||
'Access-Control-Expose-Headers' => 'Content-Type',
|
||||
], "\r\n"));
|
||||
|
||||
// 消息开始
|
||||
$connection->send(new ServerSentEvents([
|
||||
'event' => 'message', 'data' => 'start'
|
||||
]));
|
||||
|
||||
// 生成器
|
||||
$generator = (new Terminal())->exec();
|
||||
foreach ($generator as $chunk) {
|
||||
$connection->send(new ServerSentEvents([
|
||||
'event' => 'message', 'data' => $chunk
|
||||
]));
|
||||
}
|
||||
|
||||
// 关闭链接
|
||||
$connection->close();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user