WorkerMan學習篇:準備和熱身
阿新 • • 發佈:2019-01-30
workerman對PHP環境的要求是:
1、PHP CLI>=5.4,可以執行命令 php -v 檢視版本
2、Linux系統要求php安裝了posix和pcntl擴充套件
Linux系統可以在命令中執行 curl -Ss http://www.workerman.net/check.php | php 檢測本地環境是否滿足workerman。
下載完成之後,把workerman
整個目錄放到我們的專案中,並在根目錄新建一個名為server.php
的檔案,下面我們就來編寫這個檔案。
直接使用TCP傳輸資料
server.php:
<?php
//本機IP是10.211.55.13
//需要監聽的埠是 9090
use Workerman\Worker;
require 'workerman/Autoloader.php';
// 建立一個Worker監聽9090埠,不使用任何應用層協議
$tcp_worker = new Worker("tcp://10.211.55.13:9090");
// 啟動4個程序對外提供服務
$tcp_worker->count = 4;
// 當客戶端發來資料時
$tcp_worker->onMessage = function($connection, $data)
{
// 向客戶端傳送hello $data
$connection ->send('hello ' . $data);
};
// 執行worker
Worker::runAll();
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
命令列執行
php server.php start
- 1
- 1
開啟服務了。
瀏覽器訪問http://10.211.55.13:9090/
一直處於”等待”狀態,這是因為我們上面程式碼中,預設沒有關閉socket連線。
我們修改程式碼:
// 向客戶端傳送hello $data
$connection->send ('hello ' . $data);
$connection->close();
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
使用HTTP協議對外提供Web服務
<?php
//本機IP是10.211.55.13
//需要監聽的埠是 9090
use Workerman\Worker;
require 'workerman/Autoloader.php';
// 建立一個Worker監聽9090埠,使用http協議通訊
$http_worker = new Worker("http://10.211.55.13:9090");
// 啟動4個程序對外提供服務
$http_worker->count = 4;
// 接收到瀏覽器傳送的資料時回覆hello world給瀏覽器
$http_worker->onMessage = function($connection, $data)
{
// 向瀏覽器傳送hello world
$connection->send('hello world');
$connection->close();
};
// 執行worker
Worker::runAll();
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
命令列執行
php server.php start
- 1
- 1
原文地址:http://blog.csdn.net/github_26672553/article/details/54910338