PHP Microservice Framework Swoft: WebSocket Server Partie 1


Cet article que nous allons apprendre est: Comment installer et exécuter le serveur swoft websocket.


Cet article fait partie d'une série d'articles sur le serveur Swoft WebSocket. Apprenons à propos de Swoft!

Qu'est-ce que Swoft?


Swoft est un framework de coroutine de microservices hautes performances PHP. Il est publié depuis de nombreuses années et est devenu le meilleur choix pour php.


Il peut être comme Go, serveur Web coroutine intégré et client coroutine commun et réside en mémoire, indépendamment du PHP-FPM traditionnel.


Il existe des opérations de langage Go similaires, similaires aux annotations flexibles du framework Spring Cloud.


Grâce à trois années d'accumulation et d'exploration de directions, Swoft a fait de Swoft le Spring Cloud dans le monde PHP, qui est le meilleur choix pour le cadre hautes performances et la gestion des microservices de PHP.


Github



Créer un nouveau projet


Utilisez l'outil swoft-cli pour créer un nouveau projet pour Websocket.


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

Démarrer le serveur


Démarrez le serveur Websocket avec php bin/swoft ws:start commande de php bin/swoft ws:start , vous pouvez voir ci-dessous:


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

Le port du serveur Websocket est 18308

Module


Utilisez l'outil swoft-cli pour créer un nouveau module websocket.


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

Code pour le module d'écho ( app/WebSocket/EchoModule.php ) comme ceci:


 <?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! :)'); } } 

Test


Ici, utilisez swoft-devtool pour connecter le serveur WebSocket.


Utilisez la commande php bin/swoft dclient:ws /echo dans le composant swoft-devtool pour connecter le serveur WebSocket, vous pouvez voir le message de réussite de la connexion comme ci-dessous.


 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/fr471598/


All Articles