Framework de microserviço PHP Swoft: WebSocket Server Part 1


Este artigo que vamos aprender é: Como instalar e executar o servidor swoft websocket.


Este artigo é parte de uma série de artigos no Swoft WebSocket Server. Vamos aprender sobre o Swoft!

O que é o Swoft?


O Swoft é um framework de alto desempenho em microsserviços em PHP. Foi publicado por muitos anos e se tornou a melhor escolha para php.


Pode ser como Go, servidor da web incorporado de corotina e cliente comum de corotina e é residente na memória, independentemente do PHP-FPM tradicional.


Existem operações de idioma Go semelhantes, semelhantes às anotações flexíveis da estrutura Spring Cloud.


Através de três anos de acumulação e exploração de direção, a Swoft transformou a Swoft na Spring Cloud no mundo PHP, que é a melhor escolha para o gerenciamento de framework e microsserviços de alto desempenho do PHP.


Github



Criar novo projeto


Use swoft-cli ferramenta swoft-cli para criar um novo projeto para o Websocket.


 php swoftcli.phar create:app --type ws swoft-ws-app cd swoft-ws-app composer install 

Iniciar servidor


Inicie o servidor Websocket com php bin/swoft ws:start command, você pode ver abaixo:


 $ php bin/swoft ws:start Information Panel ******************************************************************************************* * WebSocket | Listen: 0.0.0.0:18308, type: TCP, mode: Process, worker: 8 ******************************************************************************************* 

A porta do servidor Websocket é 18308

Módulo


Use swoft-cli ferramenta swoft-cli para criar um novo módulo websocket.


 php swoftcli.phar gen:ws-mod echo --prefix /echo 

Código para o módulo de eco ( app/WebSocket/EchoModule.php ) como este:


 <?php declare(strict_types=1); namespace App\WebSocket; use Swoft\Http\Message\Request; use Swoft\Http\Message\Response; use Swoft\WebSocket\Server\Annotation\Mapping\WsModule; use Swoft\WebSocket\Server\Annotation\Mapping\OnOpen; use Swoft\WebSocket\Server\Annotation\Mapping\OnHandshake; use Swoole\WebSocket\Server; /** * Class EchoModule - This is an module for handle websocket * * @WsModule("/echo") */ class EchoModule { /** * @OnHandshake() * @param Request $request * @param Response $response * @return array */ public function checkHandshake(Request $request, Response $response): array { // some validate logic ... return [true, $response]; } /** * @OnOpen() * @param Server $server * @param Request $request * @param int $fd * @return mixed */ public function onOpen(Server $server, Request $request, int $fd) { $server->push($fd, 'hello, welcome! :)'); } } 

Teste


Aqui, use o swoft-devtool para conectar o servidor WebSocket.


Use o comando php bin/swoft dclient:ws /echo no componente swoft-devtool para conectar o servidor WebSocket, você pode ver a mensagem de sucesso da conexão como abaixo.


 Begin connecting to websocket server: 127.0.0.1:18308 path: /echo Success connect to websocket server. Now, you can send message INTERACTIVE ================================================================================ server> ?Opened, welcome #1! client> hi server> Recv: hi client> 

Github


Source: https://habr.com/ru/post/pt471598/


All Articles