kim1ne/loop-server
最新稳定版本:1.1.1
Composer 安装命令:
composer require kim1ne/loop-server
包简介
README 文档
README
This package can be installed as a Composer dependency.
composer require kim1ne/loop-server
This component unites all libraries, where needs start an infinite process. Example:
Producers publishing messages to the kafka. Workers expect messages from the kafka and when got messages, sending to the socket server. The socket-server sending messages to all connected clients
use RdKafka\Conf; use Kim1ne\Socket\Server\Server; use Kim1ne\Socket\Server\Connection; use Kim1ne\Socket\Server\Message; use Kim1ne\Socket\Server\Transport; use Kim1ne\Kafka\KafkaWorker; use Kim1ne\Kafka\KafkaConsumer; use Kim1ne\Kafka\Message as KafkaMessage; $server = $server = new Server(transport: Transport::WS); $server->on('message', function (Message $message, Connection $connection, Server $server) { InputMessage::green("I've got the message!"); }); $conf = new Conf(...); $worker = new KafkaWorker($conf); $worker->subscribe(['my-topic']) $worker->on(function (KafkaMessage $message, KafkaConsumer $consumer) use ($server) { $consumer->commitAsync($message); $server->sendAll($message->payload); }); \Kim1ne\Loop\Server::run($server, $worker);
Version 1.1.0
- All components have been updated 1.1.0
- A component has a scope-name. It has the method - getScopeName() - returns the scope-name. All events, which sends a component will merge with the scope-name.
- All components are isolated from each other. A component can sends an event, and another component will waiting for the event
Example:
the object KafkaWorker has scope-name - kafka:worker, and sends an event message, the event will called kafka:worker:message
use Kim1ne\Socket\Server\Server; use Kim1ne\Kafka\KafkaWorker; use Kim1ne\Kafka\Message; use Kim1ne\Kafka\KafkaConsumer; use Kim1ne\Core\Event; /** * @var Server $server */ $server->on('kafka:worker:message', function (Event $event) use ($server) { $message = $event->get('message'); $server->sendAll($message); }); /** * @var KafkaWorker $worker */ $worker->on('message', function (Message $message, KafkaConsumer $consumer) use ($worker) { $worker->dispatchEvent('message', new Event([ 'message' => $message->payload ])); });
统计信息
- 总下载量: 7
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-01-11