Workerman 是一款純 PHP 開發的開源高性能的 PHP socket 服務框架。php
官方文檔:http://doc.workerman.net/html
示例:http://doc.workerman.net/async-tcp-connection/connect.htmlmysql
<?php use Workerman\Worker; use Workerman\Connection\AsyncTcpConnection; require_once './Workerman/Autoloader.php'; // 建立一個Worker監聽2345端口,使用http協議通信 $tcp_worker = new Worker("tcp://0.0.0.0:2345"); // 啓動4個進程對外提供服務 $tcp_worker->count = 4; $tcp_worker->onConnect = function ($connection) { echo 'new connection '.$connection->getRemoteIp().PHP_EOL; // 異步創建一個到實際mysql服務器的鏈接 $connection_to_mysql = new AsyncTcpConnection('tcp://172.17.0.3:3306'); // mysql鏈接發來數據時,轉發給對應客戶端的鏈接 $connection_to_mysql->onMessage = function ($connection_to_mysql, $data) use ($connection) { $connection->send($data); }; // mysql鏈接關閉時,關閉對應的代理到客戶端的鏈接 $connection_to_mysql->onClose = function($connection_to_mysql) use ($connection) { $connection->close(); }; // 執行異步鏈接 $connection_to_mysql->connect(); // 客戶端發來數據時,轉發給對應的mysql鏈接 $connection->onMessage = function($connection, $data) use ($connection_to_mysql) { $connection_to_mysql->send($data); }; // 客戶端鏈接斷開時,斷開對應的mysql鏈接 $connection->onClose = function($connection) use ($connection_to_mysql) { $connection_to_mysql->close(); }; }; // 接收到瀏覽器發送的數據時回覆hello world給瀏覽器 $tcp_worker->onMessage = function($connection, $data) { // 向瀏覽器發送hello world // $connection->send('hello world'); // $connection->close(); echo $data; }; // 運行worker Worker::runAll();
使用 Navicat 鏈接測試:sql