text protokolü

Workerman, veri paketi + satır sonu formatında bir text protokolü tanımlar; bu, her veri paketinin sonuna bir satır sonu eklenerek paketin sonunu gösterir.

Aşağıdaki buffer1 ve buffer2 dizgeleri text protokolüne uymaktadır:

// Metne bir satır sonu ekle
$buffer1 = 'abcdefghijklmn
';
// php'de çift tırnak içindeki \n bir satır sonunu temsil eder, örneğin "\n"
$buffer2 = '{"type":"say", "content":"hello"}'."\n";

// Sunucu ile socket bağlantısı oluştur
$client = stream_socket_client('tcp://127.0.0.1:5678');
// text protokolü ile buffer1 verisini gönder
fwrite($client, $buffer1);
// text protokolü ile buffer2 verisini gönder
fwrite($client, $buffer2);

text protokolü oldukça basit ve kullanımı kolaydır; geliştiriciler kendi protokollerini oluşturmak istediklerinde, örneğin bir mobil uygulama ile veri transferi veya donanımla iletişim gibi durumlarda text protokolünü kullanmayı düşünebilirler; geliştirme ve hata ayıklama oldukça rahattır.

text protokolü hata ayıklama

text protokolü, telnet istemcisi ile hata ayıklamak için kullanılabilir; aşağıdaki örnekde olduğu gibi:

Yeni bir test.php dosyası oluşturun

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();

php test.php start komutunu çalıştırdığınızda aşağıdaki gibi bir çıktı alırsınız

php test.php start
Workerman[test.php] DEBUG modunda başlatıldı
----------------------- WORKERMAN -----------------------------
Workerman sürümü:3.2.7          PHP sürümü:5.4.37
------------------------ İŞÇİLER -------------------------------
kullanıcı       işçi          dinle                         süreç sayısı durum
root           none          myTextProtocol://0.0.0.0:5678   1         [OK]
----------------------------------------------------------------
Çıkmak için Ctrl-C’ye basın. Başlatma başarılı.

Başka bir terminal açarak telnet ile test edin (linux sisteminin telnet'ini kullanmanız önerilir)

Varsayılan olarak yerel makinde test ediyorsanız,
terminalde telnet 127.0.0.1 5678 komutunu çalıştırın
ve ardından hi yazıp enter tuşuna basın
hello world\n verisini alacaksınız

telnet 127.0.0.1 5678
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
hi
hello world