simple-ipc/php-symplib

PHP的同步消息传递框架

v1.0.1 2024-08-03 14:02 UTC

This package is auto-updated.

Last update: 2024-09-07 10:09:21 UTC


README

用户友好的面向对象API,用于PHP进程间的消息传递。

使用流套接字作为消息传递通道。单个服务器可以监听和处理多个通道上的消息,包括任何Unix域套接字和TCP/IP(v4和v6)的混合。

协议

消息使用简单的链路协议,其中消息的前8个字节指定其余消息的长度(无符号,大端)。

消息的有效负载由用户提供。序列化格式等留给用户选择。

入门指南

查看test/目录中的完整工作示例。

简单服务器

class MyMessageHandler implements MessageHandler {
    public function handleMessage(string $msg): string {
        return "Hello, client, I received: $msg";
    }
}

$handler = new MyMessageHandler();
$address = new InetSocketAddress('127.0.0.1', 1389, AF_INET);
$server = new SocketStreamsServer([
    new SocketData($address, $handler)
]);

$server->listen();
while (true)
    $server->checkMessages(1);

简单客户端

$address = new InetSocketAddress('127.0.0.1', 1389);
$client = new SocketStreamClient($address);

$client->connect();
$client->sendMessage("Hello, server!");
$response = $client->receiveMessage();
echo $response . PHP_EOL;
$client->disconnect();