热门推荐
2024骗子收录查询系统PHP网站源码.zip
2024-12-26 02:59
# Workerman [![Gitter](https://badges.gitter.im/walkor/Workerman.svg)](https://gitter.im/walkor/Workerman?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=body_badge) [![Latest Stable Version](https://poser.pugx.org/workerman/workerman/v/stable)](https://packagist.org/packages/workerman/workerman) [![Total Downloads](https://poser.pugx.org/workerman/workerman/downloads)](https://packagist.org/packages/workerman/workerman) [![Monthly Downloads](https://poser.pugx.org/workerman/workerman/d/monthly)](https://packagist.org/packages/workerman/workerman) [![Daily Downloads](https://poser.pugx.org/workerman/workerman/d/daily)](https://packagist.org/packages/workerman/workerman) [![License](https://poser.pugx.org/workerman/workerman/license)](https://packagist.org/packages/workerman/workerman) ## What is it Workerman is an asynchronous event driven PHP framework with high performance for easily building fast, scalable network applications. Supports HTTP, Websocket, SSL and other custom protocols. Supports libevent, [HHVM](https://github.com/facebook/hhvm) , [ReactPHP](https://github.com/reactphp/react). ## Requires PHP 5.3 or Higher A POSIX compatible operating system (Linux, OSX, BSD) POSIX and PCNTL extensions for PHP ## Installation ``` composer require workerman/workerman ``` ## Basic Usage ### A websocket server ```php <?php require_once __DIR__ . '/vendor/autoload.php'; use WorkermanWorker; // Create a Websocket server $ws_worker = new Worker("websocket://0.0.0.0:2346"); // 4 processes $ws_worker->count = 4; // Emitted when new connection come $ws_worker->onConnect = function($connection) { echo "New connection "; }; // Emitted when data received $ws_worker->onMessage = function($connection, $data) { // Send hello $data $connection->send('hello ' . $data); }; // Emitted when connection closed $ws_worker->onClose = function($connection) { echo "Connection closed "; }; // Run worker Worker::runAll(); ``` ### An http server ```php require_once __DIR__ . '/vendor/autoload.php'; use WorkermanWorker; // #### http worker #### $http_worker = new Worker("http://0.0.0.0:2345"); // 4 processes $http_worker->count = 4; // Emitted when data received $http_worker->onMessage = function($connection, $data) { // $_GET, $_POST, $_cookie, $_SESSION, $_SERVER, $_FILES are available var_dump($_GET, $_POST, $_cookie, $_SESSION, $_SERVER, $_FILES); // send data to client $connection->send("hello world "); }; // run all workers Worker::runAll(); ``` ### A WebServer ```php require_once __DIR__ . '/vendor/autoload.php'; use WorkermanWebServer; use WorkermanWorker; // WebServer $web = new WebServer("http://0.0.0.0:80"); // 4 processes $web->count = 4; // Set the root of domains $web->addRoot('www.your_domain.com', '/your/path/Web'); $web->addRoot('www.another_domain.com', '/another/path/Web'); // run all workers Worker::runAll(); ``` ### A tcp server ```php require_once __DIR__ . '/vendor/autoload.php'; use WorkermanWorker; // #### create socket and listen 1234 port #### $tcp_worker = new Worker("tcp://0.0.0.0:1234"); // 4 processes $tcp_worker->count = 4; // Emitted when new connection come $tcp_worker->onConnect = function($connection) { echo "New Connection "; }; // Emitted when data received $tcp_worker->onMessage = function($connection, $data) { // send data to client $connection->send("hello $data "); }; // Emitted when new connection come $tcp_worker->onClose = function($connection) { echo "Connection closed "; }; Worker::runAll(); ``` ### Enable SSL ```php <?php require_once __DIR__ . '/vendor/autoload.php'; use WorkermanWorker; // SSL context. $context = array( 'ssl' => array( 'local_cert' => '/your/path/of/server.pem', 'local_pk' => '/your/path/of/server.key', 'verify_peer' => false, ) ); // Create a Websocket server with ssl context. $ws_worker = new Worker("websocket://0.0.0.0:2346", $context); // Enable SSL. WebSocket+SSL means that Secure WebSocket (wss://). // The similar approaches for Https etc. $ws_worker->transport = 'ssl'; $ws_worker->onMessage = function($connection, $data) { // Send hello $data $connection->send('hello ' . $data); }; Worker::runAll(); ``` ### Custom protocol Protocols/MyTextProtocol.php ```php namespace Protocols; class MyTextProtocol { public static function input($recv_buffer) { // Find the position of the first occurrence of " " $pos = strpos($recv_buffer, " "); // Not a complete package. Return 0 because the length of package can not be calculated if($pos === false) { return 0; } // Return length of the package return $pos+1; } public static function decode($recv_buffer) { return trim($recv_buffer); } public static function encode($data) { return $data." "; } } ``` ```php require_once __DIR__ . '/vendor/autoload.php'; use WorkermanWorker; // #### MyTextProtocol worker #### $text_worker = new Worker("MyTextProtocol://0.0.0.0:5678"); $text_worker->onConnect = function($connection) { echo "New connection "; }; $text_worker->onMessage = function($connection, $data) { // send data to client $connection->send("hello world "); }; $text_worker->onClose = function($connection) { echo "Connection closed "; }; // run all workers Worker::runAll(); ``` ### Timer ```php require_once __DIR__ . '/vendor/autoload.php'; use WorkermanWorker; use WorkermanLibTimer; $task = new Worker(); $task->onWorkerStart = function($task) { // 2.5 seconds $time_interval = 2.5; $timer_id = Timer::add($time_interval, function() { echo "Timer run "; } ); }; // run all workers Worker::runAll(); ``` ### AsyncTcpConnection (tcp/ws/text/frame etc...) ```php require_once __DIR__ . '/vendor/autoload.php'; use WorkermanWorker; use WorkermanConnectionAsyncTcpConnection; $worker = new Worker(); $worker->onWorkerStart = function() { // Websocket protocol for client. $ws_connection = new AsyncTcpConnection("ws://echo.websocket.org:80"); $ws_connection->onConnect = function($connection){ $connection->send('hello'); }; $ws_connection->onMessage = function($connection, $data){ echo "recv: $data "; }; $ws_connection->onError = function($connection, $code, $msg){ echo "error: $msg "; }; $ws_connection->onClose = function($connection){ echo "connection closed "; }; $ws_connection->connect(); }; Worker::runAll(); ``` ### Async Mysql of ReactPHP ``` composer require react/mysql ``` ```php <?php require_once __DIR__ . '/vendor/autoload.php'; use WorkermanWorker; $worker = new Worker('tcp://0.0.0.0:6161'); $worker->onWorkerStart = function() { global $mysql; $loop = Worker::getEventLoop(); $mysql = new ReactMySQLConnection($loop, array( 'host' => '127.0.0.1', 'dbname' => 'dbname', 'user' => 'user', 'passwd' => 'passwd', )); $mysql->on('error', function($e){ echo $e; }); $mysql->connect(function ($e) { if($e) { echo $e; } else { echo "connect success
    以上就是本篇文章【2024骗子收录查询系统PHP网站源码.zip】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/quote/13138.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站https://sicmodule.kub2b.com/mobile/,查看更多   
发表评论
0评