|
|
10 anni fa | |
|---|---|---|
| Applications | 10 anni fa | |
| GatewayWorker | 10 anni fa | |
| Workerman | 10 anni fa | |
| .gitignore | 12 anni fa | |
| MIT-LICENSE.txt | 10 anni fa | |
| README.md | 10 anni fa | |
| composer.json | 10 anni fa | |
| start.php | 10 anni fa |
Home page:http://www.workerman.net
Documentation:http://doc3.workerman.net
Workerman is a library for event-driven programming in PHP. It has a huge number of features. Each worker is able to handle thousands of connections.
test.php
require_once './Workerman/Autoloader.php';
use Workerman\Worker;
// #### create socket and listen 1234 port ####
$tcp_worker = new Worker("tcp://0.0.0.0:1234");
//create 4 hello_worker processes
$tcp_worker->count = 4;
// when client send data to 1234 port
$tcp_worker->onMessage = function($connection, $data)
{
// send data to client
$connection->send("hello $data \n");
};
Worker::runAll();
test.php
require_once './Workerman/Autoloader.php';
use Workerman\Worker;
// #### http worker ####
$http_worker = new Worker("http://0.0.0.0:2345");
$http_worker->count = 4;
$http_worker->onMessage = function($connection, $data)
{
// send data to client
$connection->send("hello world \n");
};
// run all workers
Worker::runAll();
test.php
require_once './Workerman/Autoloader.php';
use Workerman\Worker
// #### websocket worker ####
$ws_worker = new Worker("websocket://0.0.0.0:5678");
$ws_worker->onMessage = function($connection, $data)
{
// send data to client
$connection->send("hello world \n");
};
// run all workers
Worker::runAll();
Protocols/MyTextProtocol.php
/**
* User defined protocol
* Format Text+"\n"
*/
class MyTextProtocol
{
public static function input($recv_buffer)
{
// Find the position of the first occurrence of "\n"
$pos = strpos($recv_buffer, "\n");
// 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."\n";
}
}
test.php
require_once './Workerman/Autoloader.php';
use Workerman\Worker
// #### MyTextProtocol worker ####
$text_worker = new Worker("MyTextProtocol://0.0.0.0:5678");
$text_worker->onMessage = function($connection, $data)
{
// send data to client
$connection->send("hello world \n");
};
// run all workers
Worker::runAll();
test.php
require_once './Workerman/Autoloader.php';
use \Workerman\WebServer;
// WebServer
$web = new WebServer("http://0.0.0.0:8686");
$web->count = 2;
$web->addRoot('www.your_domain.com', __DIR__.'/Web');
// run all workers
Worker::runAll();
test.php
require_once './Workerman/Autoloader.php';
use Workerman\Worker;
use Workerman\Lib\Timer;
$task = new Worker();
$task->onWorkerStart = function($task)
{
// 2.5 seconds
$time_interval = 2.5;
$timer_id = Timer::add($time_interval,
function()
{
echo "Timer run\n";
}
);
};
// run all workers
Worker::runAll();
run width
## Available commands
php test.php start ```

php test.php restart
php test.php reload ```
Live demo camera page
Live demo receive page
Source code

Live demo camera page
Live demo receive page
Source code

Live demo send page
Live demo receive page
Source code

Workerman is released under the MIT license.