Protocole text

Workerman définit un protocole de texte appelé text, dont le format est données + saut de ligne, c'est-à-dire qu'un saut de ligne est ajouté à la fin de chaque paquet de données pour indiquer la fin du paquet.

Par exemple, les chaînes buffer1 et buffer2 ci-dessous sont conformes au protocole text :

// Texte avec un retour à la ligne
$buffer1 = 'abcdefghijklmn
';
// Dans php, les doubles guillemets contenant \n représentent un saut de ligne, par exemple "\n"
$buffer2 = '{"type":"say", "content":"hello"}'."\n";

// Établir une connexion socket avec le serveur
$client = stream_socket_client('tcp://127.0.0.1:5678');
// Envoyer les données buffer1 en utilisant le protocole text
fwrite($client, $buffer1);
// Envoyer les données buffer2 en utilisant le protocole text
fwrite($client, $buffer2);

Le protocole text est très simple à utiliser. Si les développeurs ont besoin d'un protocole qui leur est propre, par exemple pour transférer des données avec une application mobile ou communiquer avec du matériel, ils peuvent envisager d'utiliser le protocole text, car le développement et le débogage sont très faciles.

Débogage du protocole text

Le protocole text peut être débogué à l'aide d'un client telnet, par exemple dans l'exemple suivant :

Créer un fichier test.php

require_once __DIR__ . '/Workerman/Autoloader.php';
use Workerman\Worker;

$text_worker = new Worker("text://0.0.0.0:5678");

$text_worker->onMessage =  function($connection, $data)
{
    var_dump($data);
    $connection->send("hello world");
};

Worker::runAll();

Exécutez php test.php start et le résultat affichera comme suit :

php test.php start
Workerman[test.php] démarré en mode DEBUG
----------------------- WORKERMAN -----------------------------
Version de Workerman : 3.2.7          Version de PHP : 5.4.37
------------------------ TRAVAILLEURS -------------------------------
Utilisateur     Travailleur   Écoute                          Processus Statut
root             aucun        myTextProtocol://0.0.0.0:5678   1         [OK]
----------------------------------------------------------------
Appuyez sur Ctrl-C pour quitter. Démarrage réussi.

Rouvrez un terminal et testez avec telnet (il est conseillé d'utiliser telnet sur un système linux).

Supposons que ce soit un test local,
dans le terminal, exécutez telnet 127.0.0.1 5678
puis entrez hi et appuyez sur Entrée
vous recevrez les données hello world\n

telnet 127.0.0.1 5678
Essai de 127.0.0.1...
Connecté à 127.0.0.1.
Le caractère d'échappement est '^]'.
hi
hello world