Versão do Swoole v4.6.2 lançada, versão para correção de bug

A  versão v4.6.2 é principalmente uma versão de correção de bug sem alterações incompatíveis com versões anteriores.

Adicionado  Coroutine\Socket->recvLine() e  Coroutine\Socket->readWithBuffer() método

Eles são usados ​​para resolver   problemas de compatibilidade de socket_read e recv(1) um grande número de problemas de chamada de sistema ao usar a  recepção byte a byte.

Ao mesmo tempo, o Response\create() método é aprimorado  , podendo ser usado independentemente do Servidor, como:

use Swoole\Coroutine\Server;
use Swoole\Coroutine\Server\Connection;
use Swoole\Http\Request;
use Swoole\Http\Response;

Swoole\Coroutine\run(function () {
    $server = new Server('0.0.0.0', 9501, false);

    go(function () use ($server) {
        $server->handle(function (Connection $conn) use ($server) {
            $req = Request::create();
            while(true) {
                $data = $conn->recv();
                if (strlen($data) != $req->parse($data) or $req->isCompleted()) {
                    break;
                }
            }
            var_dump($req->get);
            $resp = Response::create([$conn->exportSocket(), $req]);
            $resp->header('X-Server', 'swoole');
            $resp->end('Hello, Swoole');

            $server->shutdown();
        });
        $server->start();
    });
});

Use curl para iniciar uma solicitação após a inicialização

$ curl -I http://127.0.0.1:9501/\?hello\=swoole
HTTP/1.1 200 OK
X-Server: swoole
Server: swoole-http-server
Connection: keep-alive
Content-Type: text/html
Date: Mon, 25 Jan 2021 10:58:31 GMT
Content-Length: 13

$ curl http://127.0.0.1:9501/\?hello\=swoole
Hello, Swoole

O terminal irá imprimir os parâmetros GET na solicitação

array(1) {
  ["hello"]=>
  string(6) "swoole"
}

A seguir está o log de atualização completo:

Nova API

  • Novo  Http\Request\getMethod() método (# 3987) (@ luolaifa000)
  • Novo  Coroutine\Socket->recvLine() método (# 4014) (@matyhtf)
  • Novo  Coroutine\Socket->readWithBuffer() método (# 4017) (@matyhtf)

Realçar

  • Response\create() Método aprimorado  , pode ser usado independentemente do servidor (# 3998) (@matyhtf)
  • Suporte ao  Coroutine\Redis->hExists retorno do tipo bool após definir o modo de compatibilidade (swoole / swoole-src @ b8cce7c) (@matyhtf)
  • Suporte para  socket_read configuração da opção PHP_NORMAL_READ (swoole / swoole-src @ b1a0dcc) (@matyhtf)

reparar

  • Corrija  Coroutine::defer o problema coredump no PHP8 (# 3997) (@huanghantao)
  • Corrija Coroutine\Socket::errCode o problema de configurações incorretas ao usar o contexto de thread  (swoole / swoole-src @ 004d08a) (@matyhtf)
  • Corrija o problema de falha de compilação do Swoole nos macos mais recentes (# 4007) (@matyhtf)
  • Corrija o problema de que o contexto do fluxo de php é um ponteiro nulo quando o parâmetro md5_file é passado para o url (# 4016) (@ZhiyangLeeCN)

Núcleo

  • Use o pool de threads de AIO para conectar o stdio (Resolva o problema de leitura e gravação de multi-corrotina causado por tratar stdio como socket antes) (# 4002) (@matyhtf)
  • Refatorar HttpContext (# 3998) (@matyhtf)
  • Refatoração  Process::wait() (# 4019) (@matyhtf)

Acho que você gosta

Origin www.oschina.net/news/127801/swoole-4-6-2-released
Recomendado
Clasificación