问题标签 [reactphp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP proc_open 未从 Go 脚本接收数据
我目前正在使用 ReactPHP Child-Process 库(它使用 proc_open())从 Go 应用程序中以流格式获取数据。但是,当我从 stdout 和 stderr 转储所有输入时,即使在 bash 中对其进行测试时,我也一无所获。
这是 Go 脚本:https ://github.com/bwmarrin/dca/blob/master/main.go
Go 脚本使用 goroutine,所以这可能是问题所在?(不确定,我不是 Go 开发人员,也没有编写程序。)
我正在使用 PHP 7.0.3 CLI 在 Mac OS X 10.11.2 El Capitan 上运行。
PHP代码:
React Child-Process 可以在这里找到:https ://github.com/reactphp/child-process
php - ReactPHP - 定时发送 UDP 数据包的时间长度?
我目前正在使用 ReactPHP 事件循环和 ReactPHP 数据报(可以在这里找到:https ://github.com/reactphp/datagram )。
目前,我正在使用数据报客户端连接到 UDP 服务器并每隔 20 毫秒向它发送数据包,但是,我需要计算发送数据包需要多长时间。这对 ReactPHP 可行吗?
php - 异步套接字客户端缓冲区大小
我必须使用异步套接字连接连接远程服务器并检索数据。我可以连接,但有问题。
包裹是按件发送的。我有两个选择;我可以设置一个缓冲区并将整个包裹放在一个整体中,或者在所有转移完成后组合起来。我认为第一个选项(缓冲的东西)是正确的方法。
我正在定义缓冲区大小,但它在第一部分不起作用。在其他部分,它可以工作,但使用这种方法我无法将整个包整合在一起,因为第一部分限制为 5,24 Kb。
你可以在下面找到我的代码:
我试图在$stream->on('data', function ($data) {
line 下定义一个缓冲区大小,但你猜它失败了。我不知道如何正确处理它。
提前致谢。
php - 如何在 HTTP 请求和 cli 类对象之间进行通信
我有一个应用程序正在运行,它列出了 HTTP 请求。每个请求都被传递到实例化框架对象的单个页面,$app
这负责路由/控制器/模型等。
现在我有另一个类,其对象是通过实例化的。一个 CLI 脚本让我们$cliApp
现在调用它问题是我如何让两个对象相互交谈。$app
每次有新请求时都会实例化。
但是$cliApp
在运行脚本时只实例化一次。该脚本通过PHP React Event loop$loop
的对象循环运行。
Cli 应用程序正在运行 websockets。所以基本上我希望通过 http 和套接字进行通信。http api。
附言:
现在我有一个使用消息队列的解决方案,例如 0mq 等,但这似乎有点矫枉过正,因为我不想扩大规模并保持简单。
我目前正在尝试并感觉正确的另一个解决方案是在请求创建的线程$http
和请求创建的线程之间共享一个 SptStorageObject $cli
。也许这是依赖注入的问题,我在分享这个$store
对象时遇到了麻烦。
ssl - 让 wss 与 stunnel 和棘轮一起工作
在 CentOS 7 上运行 Apache v2.4、PHP v5.6 w/ php-fpm
所以我试图让 wss 与 stunnel 和 Ratchet 一起工作。我已经让 Ratchet 的 Hello World ( http://socketo.me/docs/hello-world ) 在端口 8080 上使用非 ssl 上的测试代码成功运行。我可以从同一台机器远程登录,也可以从 aa 远程登录不同的机器。
通过阅读,我知道棘轮不支持 ssl 连接,但通过包装与 stunnel 的通信来支持,因此我设置了 stunnel,并在端口 8443 上侦听了适当的证书,这似乎正在工作(如日志文件所示)。
当我尝试使用 Firefox 暂存器中的 wss 建立连接时,出现以下错误:Firefox can't establish a connection to the server at wss://testserver.testdomain.com:8443
我可以看到正在通过各种日志文件创建连接,但是由于我无法创建可靠的 wss 连接,因此在某处通信失败. 关于我缺少什么或我在哪里搞砸的任何想法?日志/代码如下
便签本代码
隧道配置:
隧道日志:
棘轮样本输出:
Telnet 连接 1
websocket - 可以使用 ReactPHP 进行广播吗?
是否可以在没有 Ratchet 的情况下使用 ReactPHP 将数据广播或发送到浏览器并用 javascript 捕获它以相应地处理它?
我在事件循环上有一个periodicTimer,有时它需要广播或发送给通过套接字连接的用户。我看到有一个类套接字,在 React github 项目页面上的示例中,它被实例化但未在 web-flow 中使用,仅在 netcat 上使用。是否可以使其在 socket.IO 或 Ratchet 等浏览器上本地工作?
工厂和连接工作正常,我只是不知道如何绑定套接字以使用事件循环向服务器发送/接收数据。
php - Ratchet onopen 客户端不触发
我正在尝试在我的本地机器上实现 Ratchet Socket Hello 字,一切正常,但在 vps centos 服务器上运行服务器服务时
它开始正确侦听端口(我可以在 linux 上看到该端口正在侦听),但是当我打开“clint.html”页面时,该方法onopen
永远不会触发,但服务器说
新客户端连接!
2分钟后它说
客户端断开连接
如果我向客户端发送消息,它将需要 2 分钟,然后客户端会收到它,但它会再次断开连接,在我看来,服务器和客户端之间的连接不稳定。每次当我检查 websocket.readyState 它不等于 1
我禁用防火墙和 vps 服务器上的任何安全但仍然有这个问题。我不得不提一下,正常的 php 套接字函数可以正常工作,因为我可以对其进行测试,并且一切正常
,但是关于棘轮,它似乎挂在onopen
方法上。
- 端口 9091 已打开
- 防火墙被禁用
- abrandao.com/2013/06/websockets-html5-php/ 工作白化问题,可以发送和接收来自客户端的消息
但是棘轮在连接上有问题
聊天服务器.php:
Chat.php 类:
客户端html:
/li>
php - 作曲家反应 PHP
我是新手。尝试安装 react php 来制作异步服务器。我使用 composer require react/react 安装它。然后在代码中包含 autoload.php。但它无法自动加载所需的文件。我写了这段代码
` 这是我的作曲家 json
这是我的供应商文件夹结构
php - Ratchet PHP 和长时间运行的任务
我正在使用棘轮 php。我是这样开始的:
现在,在我onMessage()
的Pusherserver
班级(实现MessageComponentInterface
)中,我想执行一个漫长的阻塞任务。这将是一个 HTTP 请求,最多可能需要十秒钟才能完成。
如何onMessage()
在前一个 HTTP 请求正在执行时自由处理其他请求?我无法使用 pthreads,因为我无权更改我已经获得的 php 版本(这是线程安全的)。
php - 通过 React Timer 调用(Ratchet)WampServer 方法
我正在使用 Ratchet 设置 WampServer。是否可以在循环中添加一个每 30 秒调用一次 WampServer 方法的计时器?
我尝试了以下代码:
但似乎没有计时器起作用。
注意:由于此代码是一个类方法,因此 $this 是对具有对 WampServer ($this->wampserver) 和 WampServer 使用的循环 ($this->loop) 的引用的类对象的引用。我调用的方法不是 WampServerInterface 的一部分。