[Workerman]二、Workerman的簡單實例

官方手冊:http://doc.workerman.net/getting-started/simple-example.html

1. http協議連接

<?php
use Workerman\Worker;
require_once __DIR__ . '/Workerman/Autoloader.php';

// 創建一個Worker監聽2345端口,使用http協議通訊
$http_worker = new Worker("http://0.0.0.0:2345");

// 啓動4個進程對外提供服務
$http_worker->count = 4;

// 接收到瀏覽器發送的數據時回覆hello world給瀏覽器
$http_worker->onMessage = function($connection, $data)
{
    // 向瀏覽器發送hello world
    $connection->send('hello world');
};

// 運行worker
Worker::runAll();
  1. 命令行下面運行上邊的php代碼。
  2. 瀏覽器輸入:http://127.0.0.1:2345

2. WebSocket協議連接

<?php
use Workerman\Worker;
require_once __DIR__ . '/Workerman/Autoloader.php';

// 注意:這裏與上個例子不同,使用的是websocket協議
$ws_worker = new Worker("websocket://0.0.0.0:2000");

// 啓動4個進程對外提供服務
$ws_worker->count = 4;

// 當收到客戶端發來的數據後返回hello $data給客戶端
$ws_worker->onMessage = function($connection, $data)
{
    // 向客戶端發送hello $data
    $connection->send('hello ' . $data);
};

// 運行worker
Worker::runAll();
  1. 命令行下面運行上邊的php代碼。
  2. 打開瀏覽器,打開調試模式。在控制檯輸入如下代碼:
// 假設服務端ip爲127.0.0.1
ws = new WebSocket("ws://127.0.0.1:2000");
ws.onopen = function() {
    alert("連接成功");
    ws.send('tom');
    alert("給服務端發送一個字符串:tom");
};
ws.onmessage = function(e) {
    alert("收到服務端的消息:" + e.data);
};

3. TCP協議

<?php
use Workerman\Worker;
require_once __DIR__ . '/Workerman/Autoloader.php';

// 創建一個Worker監聽2347端口,不使用任何應用層協議
$tcp_worker = new Worker("tcp://0.0.0.0:2347");

// 啓動4個進程對外提供服務
$tcp_worker->count = 4;

// 當客戶端發來數據時
$tcp_worker->onMessage = function($connection, $data)
{
    // 向客戶端發送hello $data
    $connection->send('hello ' . $data);
};

// 運行worker
Worker::runAll();
  1. 命令行下面運行上邊的php代碼。
  2. 命令行:telnet 127.0.0.1 2347

就這!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章