text protokolü
Workerman,
veri paketi + satır sonuformatı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