pupper / pupper-php
此包已被废弃,不再维护。未建议替代包。
Pupper 的 PHP 组件
0.3.2
2017-10-23 11:44 UTC
Requires
- amphp/aerys: ^0.6.0
- roave/security-advisories: dev-master
This package is not auto-updated.
Last update: 2020-08-22 06:02:36 UTC
README
Pupper 代表 "PHP Plus React" (PPR > Pupper)。目标是创建一个框架,将这两种技术的优点结合在一起,并实现双向通信。
快速开始
Pupper PHP 基于 Aerys,一个非阻塞的 PHP 应用程序和 WebSocket 框架。
以下是快速入门的代码概览。
use Pupper\Pupper\Event; // Initiates WebSocket connection $websocket = (new Pupper\Pupper\WebSocket) // Filter allowed clients (optional) ->allowOrigin('https', 'your.domain.com', 443); // Defines a callback for 'my_event' ->addEventListener('my_event', function (Event $event) { // Dispatches to all clients $websocket->broadcastEvent( new Event('notify_all', 'Something has happened!'); ); // Dispatches to the client that triggered the callback return (new Event) ->setName('operation_done') ->setValue('Your value was ' . $event->getValue()); }); $router = Aerys\router()->route('GET', '/', Aerys\websocket($websocket)); // Exposes the websocket to the 1337 port return (new Aerys\Host)->use($router)->expose('*', 1337);
API
WebSocket
WebSocket 是在 PHP 端启动 WebSocket 的类。
addListener
addListener 以事件名称作为第一个参数,以回调函数作为第二个参数。
如果你 return 一个 Event,它将被发送到触发回调的客户。
use Pupper\Pupper\Event; $websocket = (new Pupper\Pupper\WebSocket) ->addEventListener('custom', function (Event $event) { return (new Event) ->setName('custom') ->setValue('From PHP: ' . $event->getValue()); });
broadcastEvent
broadcastEvent 将事件发送到所有客户。
use Pupper\Pupper\Event; $websocket = (new Pupper\Pupper\WebSocket) ->addEventListener('player_has_joined', function (Event $event) { $websocket->broadcastEvent( 'player_count_updated', 'A new player has joined!' ); });
客户端筛选
将 WebSocket 构造函数的协议、主机和端口参数设置为限制对您的 WebSocket 的访问。
$websocket = (new \Pupper\WebSocket)->allowOrigin('https', 'your.domain.com', 80);
事件
Event 表示来自 PHP 端的事件。
读取
Event 有 getName() 和 getValue() 方法来读取事件的名称和值。
use Pupper\Pupper\Event; function (Event $event) { echo $event->getName(); echo $event->getValue(); });
写入
Event 有 setName() 和 setValue() 方法来写入事件的名称和值。
use Pupper\Pupper\Event; $event = (new Event) ->setName('hello_event') ->setValue('Hello from PHP!');
构造
Event 的构造函数还接受事件的名称和值作为参数。
use Pupper\Pupper\Event; $event = new Event( 'hello_event', 'Hello from PHP!' );
致谢
许可证
Unlicense。请参阅 许可证文件 获取更多信息。
