Text-Protokoll
Workerman definiert ein Textprotokoll namens "text", das das Format "Datapaket + Zeilenumbruch" hat, das heißt, am Ende jedes Datapakets wird ein Zeilenumbruch hinzugefügt, um das Paket zu beenden.
Beispielweise entsprechen die folgenden buffer1- und buffer2-Zeichenfolgen dem Textprotokoll:
// Text mit einem Zeilenumbruch
$buffer1 = 'abcdefghijklmn
';
// In PHP steht \n in doppelten Anführungszeichen für einen Zeilenumbruch, z.B. "\n"
$buffer2 = '{"type":"say", "content":"hello"}'."\n";
// Stellt eine Socket-Verbindung zum Server her
$client = stream_socket_client('tcp://127.0.0.1:5678');
// Sendet Daten im Textprotokoll mit buffer1
fwrite($client, $buffer1);
// Sendet Daten im Textprotokoll mit buffer2
fwrite($client, $buffer2);
Das Textprotokoll ist sehr einfach und benutzerfreundlich. Wenn Entwickler ein eigenes Protokoll benötigen, z.B. für die Datenübertragung mit einer mobilen App oder die Kommunikation mit Hardware usw., können sie das Textprotokoll in Betracht ziehen, da die Entwicklung und Fehlerbehebung sehr einfach sind.
Textprotokoll-Debugging
Das Textprotokoll kann mit einem Telnet-Client debuggt werden, wie im folgenden Beispiel:
Erstellen Sie eine Datei namens 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();
Führen Sie php test.php start
aus, um das Folgende anzuzeigen:
php test.php start
Workerman[test.php] start in DEBUG mode
----------------------- WORKERMAN -----------------------------
Workerman version:3.2.7 PHP version:5.4.37
------------------------ WORKERS -------------------------------
user worker listen processes status
root none myTextProtocol://0.0.0.0:5678 1 [OK]
----------------------------------------------------------------
Press Ctrl-C to quit. Start success.
Öffnen Sie ein neues Terminal, und führen Sie einen Telnet-Test durch (empfohlen für das telnet-Tool unter Linux).
Angenommen, es handelt sich um einen lokalen Test,
führen Sie im Terminal telnet 127.0.0.1 5678 aus
Geben Sie dann hi ein und drücken Sie die Eingabetaste
Sie werden die Daten "hello world\n" erhalten
telnet 127.0.0.1 5678
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
hi
hello world