qxsch/multi-process-server

运行一个多线程服务器。

v1.0.1 2017-03-23 00:39 UTC

This package is not auto-updated.

Last update: 2024-09-22 20:14:55 UTC


README

Project Status

Latest Stable Version Total Downloads License

PHP的多线程服务器

TCPServer 类提供了一个非常简单的接口与客户端通信。您可以控制应该允许多少个进程同时运行。TCPServer 可以被完全观察。

TCPClient 类提供了一个非常简单的接口与服务器通信。

您可以在客户端和服务器之间发送任何可以被 序列化 的数据。

支持使用服务器和客户端证书进行 TLS 加密(双向认证)。

一个简单的例子

服务器代码

<?php

$server = new \QXS\MultiProcessServer\TCPServer(12345);  // setup the server for 127.0.0.1 on port 12345
// UNCOMMENT THE NEXT LINE TO ADD IMPERSONATION
//$server->runAsUser("nobody");
$server->attach(new \QXS\MultiProcessServer\Observers\EchoObserver());
$server->create(new \QXS\MultiProcessServer\ClosureServerWorker(
    /**
     * @param \QXS\MultiProcessServer\SimpleSocket $serverSocket the socket to communicate with the client
     */
    function(\QXS\MultiProcessServer\SimpleSocket $serverSocket) {
        // receive data and send it back
        $data=$serverSocket->receive();
        echo "$data\n";
        $serverSocket->send($data);
    }
));

客户端代码

<?php

$client = new \QXS\MultiProcessServer\TCPClient(12345);  // connect to 127.0.0.1 on port 12345
$client->send("hi");

echo $client->receive() ."\n";