owlycode / reactboard
快速灵活的 reactphp 控制台
Requires
- cboden/ratchet: ~0.3
- dg/twitter-php: ~3.3
- symfony/config: ~2.4
- symfony/dependency-injection: ~2.4
- symfony/event-dispatcher: ~2.4
- twig/twig: ~1.15
Requires (Dev)
- phpunit/phpunit: ~3.7
This package is auto-updated.
Last update: 2024-09-08 03:03:04 UTC
README
这是什么?
ReactBoard 是一个基于 React、Ratchet 和 Symfony 组件的可扩展控制台。将其安装在服务器上,设置您希望的应用程序,然后插入一个屏幕!
您可以通过 HTTP API 实时与之交互。
入门
创建一个 composer.json
{ "autoload": { "psr-0": { "": "src/" } }, "require": { "owlycode/reactboard": "~0.1" } }
然后执行以下命令
composer install
cp vendor/owlycode/reactboard/app . -r
mv app/app.php.dist app/app.php
现在使用 php app/app.php
运行应用程序
在浏览 http://localhost:8080/home/landing
时,您应该看到欢迎页面。
尝试一下
以下应用程序包含在内:hello、prompt、twitter 和 vlc。
- hello 是默认看到的,它基本上是一个 hello world。
- prompt 将显示一条消息。
- twitter 将显示一个来自特定标签的实时更新的推文列表。
- vlc 将显示一个播放器(您的浏览器需要 VLC 插件),从指定的源进行流媒体传输。
您可以通过向 http://localhost:8080/home/command
URL 发出调用来在应用程序之间切换。尝试以下命令并查看浏览器中发生了什么
curl "http://localhost:8080/home/command?app=prompt&message=Oh%20Hi!"
在运行此命令之前,您需要设置一个推特应用程序并将其凭据输入到 app/app.php 中
curl "http://localhost:8080/home/command?app=twitter&hashtag=symfony"
在运行此命令之前,请确保您已安装 vlc(在 Linux 和 Windows 上进行测试)。完成时不要忘记 killall vlc
vlc screen:// --screen-fps=20 --live-caching=10 --sout="#transcode{vcodec=mp2v,vb=256,fps=20,scale=Auto,acodec=none}:http{mux=raw,dst=:8081/}" -I dummy & curl "http://localhost:8080/home/command?app=vlc&streamer=127.0.0.1:8081"
自定义主题
在 app/Resources/css
中创建自己的 CSS 文件,并在 app/app.php
中替换默认主题
$kernel->link(new ExternalAsset(__DIR__ . '/Resources', 'css/your-theme-file.css'));
创建自己的应用程序
在 src/MyNamespace/MyAppName
中创建以下文件
<?php // src/MyNamespace/MyAppName/MyAppNameApplication.php namespace MyNamespace\MyAppName; use OwlyCode\ReactBoard\Application\AbstractApplication; use OwlyCode\ReactBoard\Application\ApplicationInterface; class MyAppNameApplication extends AbstractApplication implements ApplicationInterface { /** * Called just before the socket server starts. */ public function init() { $this->watch('my_app_name.request.index', function(){ return $this->render('index.html.twig', array('status' => 'loaded')); }); } public function getName() { return 'my_app_name'; } }
{# src/MyNamespace/MyAppName/views/index.html.twig #} <h1>My application is {{ status }} ! :-)</h1>
然后在新创建的应用程序中注册 app/app.php
$kernel->register(new MyAppNameApplication());
现在您可以启动/重新启动 ReactBoard,打开浏览器并尝试: curl "http://localhost:8080/home/command?app=my_app_name"
进一步了解
ReactBoard 仍在早期开发中,并将提供更多文档。如果您有任何问题,请随时提出问题 :-)
同时,要了解如何进行更高级的操作,例如加载自己的资源或访问依赖注入机制,请查看 内置应用程序。Twitter 应用程序是最先进的,涵盖了 ReactBoard 可以做的一切:应用程序生命周期事件、实时更新、依赖注入使用、资源注册以及许多其他事情。