Maison > cadre php > Swoole > Comment ouvrir ws avec swoole

Comment ouvrir ws avec swoole

(*-*)浩
Libérer: 2019-12-16 10:22:43
original
2705 Les gens l'ont consulté

Comment ouvrir ws avec swoole

WebSocket (ws) est un nouveau protocole de communication ajouté en html5 Actuellement, les navigateurs populaires prennent en charge ce protocole , tels que Chrome, Safrie, Firefox, Opera, IE. , etc., la première prise en charge de ce protocole devrait être Chrome, qui est pris en charge depuis Chrome12. À mesure que le projet de protocole continue de changer, l'implémentation du protocole par chaque navigateur est également constamment mise à jour. (Apprentissage recommandé : tutoriel vidéo swoole )

swoole 1.7.9 ajoute la prise en charge intégrée du serveur WebSocket, et vous pouvez écrire un multi-processus asynchrone non bloquant avec quelques lignes de code PHP du serveur WebSocket.

$server = new Swoole\WebSocket\Server("0.0.0.0", 9501);
$server->on('open', function (Swoole\WebSocket\Server $server, $request) {
    echo "server: handshake success with fd{$request->fd}\n";
});
$server->on('message', function (Swoole\WebSocket\Server $server, $frame) {
    echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
    $server->push($frame->fd, "this is server");
});
$server->on('close', function ($ser, $fd) {
    echo "client {$fd} closed\n";
});
$server->start();
Copier après la connexion

En plus de recevoir les fonctions de rappel des classes de base SwooleServer et SwooleHttpServer, le serveur WebSocket ajoute 3 paramètres de fonction de rappel supplémentaires. Parmi eux :

La fonction de rappel onMessage est requise

Les fonctions de rappel onOpen et onHandShake sont facultatives

WebSocketServer est une sous-classe de Server, il peut donc être appelé Toutes les méthodes du serveur.

Il convient de noter que le serveur WebSocket doit utiliser la méthode WebSocketServer::push pour envoyer des données au client. Cette méthode empaquetera le protocole WebSocket. La méthode Server::send est l'interface d'envoi TCP d'origine.

La méthode WebSocketServer::disconnect peut fermer activement une connexion WebSocket depuis le serveur et spécifier le code d'état (selon le protocole WebSocket, le code d'état utilisable est un entier décimal et la valeur peut être 1000 ou 4000 -4999 ) et la raison de la fermeture (une chaîne codée en UTF-8 et d'une longueur d'octet ne dépassant pas 125).

Le code d'état est 1000 lorsqu'il n'est pas spécifié et la raison de l'arrêt est vide

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal