transport属性

ข้อกำหนด (workerman >= 3.3.4)

ตั้งค่า属性การส่งข้อมูล ค่าเลือกคือ tcp และ ssl โดยค่าเริ่มต้นคือ tcp。

เมื่อ transport เป็น ssl จะต้องติดตั้ง openssl extension ใน PHP。

เมื่อใช้ Workerman เป็นลูกค้าในการเชื่อมต่อแบบเข้ารหัส ssl กับเซิร์ฟเวอร์ (เชื่อมต่อ https, wss เป็นต้น) กรุณาตั้งค่าตัวเลือกนี้เป็น ssl เช่นในตัวอย่างด้านล่าง。

ตัวอย่าง (เชื่อมต่อ https)

use Workerman\Worker;
use Workerman\Connection\AsyncTcpConnection;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

$task = new Worker();
// เมื่อเริ่มต้นกระบวนการจะสร้างวัตถุการเชื่อมต่อแบบอะซิงโครนัสไปยัง www.baidu.com และส่งข้อมูลเพื่อเรียกข้อมูล
$task->onWorkerStart = function($task)
{
    $connection_to_baidu = new AsyncTcpConnection('tcp://www.baidu.com:443');

    // ตั้งค่าเป็นการเชื่อมต่อ ssl แบบเข้ารหัส
    $connection_to_baidu->transport = 'ssl';

    $connection_to_baidu->onConnect = function(AsyncTcpConnection $connection_to_baidu)
    {
        echo "เชื่อมต่อสำเร็จ\n";
        $connection_to_baidu->send("GET / HTTP/1.1\r\nHost: www.baidu.com\r\nConnection: keep-alive\r\n\r\n");
    };
    $connection_to_baidu->onMessage = function(AsyncTcpConnection $connection_to_baidu, $http_buffer)
    {
        echo $http_buffer;
    };
    $connection_to_baidu->onClose = function(AsyncTcpConnection $connection_to_baidu)
    {
        echo "การเชื่อมต่อถูกปิด\n";
    };
    $connection_to_baidu->onError = function(AsyncTcpConnection $connection_to_baidu, $code, $msg)
    {
        echo "รหัสข้อผิดพลาด:$code msg:$msg\n";
    };
    $connection_to_baidu->connect();
};

// เรียกใช้ worker
Worker::runAll();