建立http_test.php文件 php
<?php use Workerman\Worker; require_once './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();
運行 html
php http_test.php start
測試 web
假設服務端ip爲127.0.0.1 chrome
在瀏覽器中訪問url http://127.0.0.1:2345 瀏覽器
建立ws_test.php文件 websocket
<?php use Workerman\Worker; require_once './Workerman/Autoloader.php'; // 建立一個Worker監聽2346端口,使用websocket協議通信 $ws_worker = new Worker("websocket://0.0.0.0:2346"); // 啓動4個進程對外提供服務 $ws_worker->count = 4; // 當收到客戶端發來的數據後返回hello $data給客戶端 $ws_worker->onMessage = function($connection, $data) { // 向客戶端發送hello $data $connection->send('hello ' . $data); }; // 運行worker Worker::runAll();
運行 socket
php ws_test.php start
測試 tcp
打開chrome瀏覽器,按F12打開調試控制檯,在Console一欄輸入(或者把下面代碼放入到html頁面用js運行) 測試
// 假設服務端ip爲127.0.0.1 ws = new WebSocket("ws://127.0.0.1:2346"); ws.onopen = function() { alert("鏈接成功"); ws.send('tom'); alert("給服務端發送一個字符串:tom"); }; ws.onmessage = function(e) { alert("收到服務端的消息:" + e.data); };
建立tcp_test.php ui
<?php use Workerman\Worker; require_once './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();
運行
php tcp_test.php start
測試
telnet 127.0.0.1 2347 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. tom hello tom