1. 程式人生 > >WorkerMan學習篇:準備和熱身

WorkerMan學習篇:準備和熱身

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