我想知道以下代码有没有问题,会不会导致上下文无法销毁的情况。在第一次发送响应后上下文也会随着销毁,导致了后续依赖上下文的代码无法正常使用。
<?php
namespace app\controller;
use Mcp\Capability\Attribute\McpTool;
use support\Request;
class UserController
{
public function hello(Request $request)
{
$body = new CallbackStream();
$context = clone Context::get();
$callback = function () use ($body, $context) {
Context::reset($context);
return $body->getContents();
};
Coroutine::defer($callback);
return 'test';
}
}
真实场景是用于SSE定时发送消息。将SSE请求头放在response里面,然后在后台执行代码。代码依赖于之前的上下文才能正常工作。