引言
介紹完 Swoole 及具備的能力、應用場景以及常用框架,下面就帶大家來簡單體驗一下,建立一個 TCP 服務。
Swoole 體驗
建立 swoole, 預設建立的是一個同步的阻塞tcp服務
$host = "127.0.0.1"; // 0.0.0.0 代表接聽所有 // 建立Server物件,監聽 127.0.0.1:9501埠 $server = new Swoole\Server($host, 9501);
註冊事件
// 監聽啟動事件
$server->on(‘Start’, function($server) use ($host){
echo “啟動swoole 監聽的資訊tcp:$host:9501\n”;
});
//監聽連線進入事件
$server->on(‘Connect’, function ($server, $fd) {
echo “Client: Connect.\n”;
});
//監聽資料接收事件
$server->on(‘Receive’, function ($server, $fd, $from_id, $data) {
$server->send($fd, “Server: “.$data);
});
//監聽連線關閉事件
$server->on(‘Close’, function ($server, $fd) {
echo “Client: Close.\n”;
});
- 啟動伺服器
```php
// 阻塞
$server->start(); // 阻塞與非阻塞
執行程式
// 儲存成 PHP 檔案,然後通過 php 執行
php swoole_tcp_server.php
連線服務
服務啟動好之後就可以通過 curl 請求一下試試:
(請求之前需要)
curl http://127.0.0.1:9501
# 請求連線之後就會返回一些基礎資訊,並一直阻塞住
Server: GET / HTTP/1.1
User-Agent: curl/7.29.0
Host: 127.0.0.1:9501
Accept: */*
結語
# 一個用 swoole 搭建的伺服器已經可以了,客戶端連線正常,這樣就可以保持一個長連線,而不必像 PHP-FPM 那種形式一樣,每次都要重新連線,浪費資源,做微服務的時候就可以一直保持連線拉,包括做各種資料中介軟體的連線池都可以啦,接下來可以看我的部落格繼續學習 Swoole 啦
本作品採用《CC 協議》,轉載必須註明作者和本文連結
- 著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。
- 文章來源https://blog.arunfung.com