onMessage的部分需要改一改,我這里實(shí)測沒有問題
public function onMessage($connection, $request)
{
$files = $request->file();
$files = is_array($files) ? array_filter($files) : $files;
$server = $_SERVER;
$server['REQUEST_URI'] = $request->uri();
$server['DOCUMENT_URI'] = $request->path();
$server['SCRIPT_NAME'] = $request->path();
$server['QUERY_STRING'] = $request->queryString();
$server['REQUEST_METHOD'] = $request->method();
$server['REMOTE_ADDR'] = $connection->getRemoteIp();
$headers = $request->header();
foreach ($headers as $k => $v) {
$server['HTTP_' . str_replace('-', '_', strtoupper($k))] = $v;
}
ob_start();//啟用緩存區(qū)
//加載laravel請求核心模塊
$kernel = app()->make(\Illuminate\Contracts\Http\Kernel::class);
$laravelResponse = $kernel->handle(
$laravelRequest = \Illuminate\Http\Request::createFromBase(new Request(
$request->get(),
$request->post(),
[],
$request->cookie(),
$files,
$server,
$request->rawBody()
))
);
$laravelResponse->send();
$kernel->terminate($laravelRequest, $laravelResponse);
$res = ob_get_contents();//獲取緩存區(qū)的內(nèi)容
ob_end_clean();//清除緩存區(qū)
//輸出緩存區(qū)域的內(nèi)容
$connection->send($res);
}