问题标签 [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.

0 投票
0 回答
84 浏览

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

0 投票
0 回答
65 浏览

php - ReactPHP - 定时发送 UDP 数据包的时间长度?

我目前正在使用 ReactPHP 事件循环和 ReactPHP 数据报(可以在这里找到:https ://github.com/reactphp/datagram )。

目前,我正在使用数据报客户端连接到 UDP 服务器并每隔 20 毫秒向它发送数据包,但是,我需要计算发送数据包需要多长时间。这对 ReactPHP 可行吗?

0 投票
1 回答
766 浏览

php - 异步套接字客户端缓冲区大小

我必须使用异步套接字连接连接远程服务器并检索数据。我可以连接,但有问题。

包裹是按件发送的。我有两个选择;我可以设置一个缓冲区并将整个包裹放在一个整体中,或者在所有转移完成后组合起来。我认为第一个选项(缓冲的东西)是正确的方法。

我正在定义缓冲区大小,但它在第一部分不起作用。在其他部分,它可以工作,但使用这种方法我无法将整个包整合在一起,因为第一部分限制为 5,24 Kb。

你可以在下面找到我的代码:

我试图在$stream->on('data', function ($data) {line 下定义一个缓冲区大小,但你猜它失败了。我不知道如何正确处理它。

提前致谢。

0 投票
1 回答
208 浏览

php - 如何在 HTTP 请求和 cli 类对象之间进行通信

我有一个应用程序正在运行,它列出了 HTTP 请求。每个请求都被传递到实例化框架对象的单个页面,$app这负责路由/控制器/模型等。

现在我有另一个类,其对象是通过实例化的。一个 CLI 脚本让我们$cliApp现在调用它问题是我如何让两个对象相互交谈。$app每次有新请求时都会实例化。

但是$cliApp在运行脚本时只实例化一次。该脚本通过PHP React Event loop$loop的对象循环运行。

Cli 应用程序正在运行 websockets。所以基本上我希望通过 http 和套接字进行通信。http api。

附言:

现在我有一个使用消息队列的解决方案,例如 0mq 等,但这似乎有点矫枉过正,因为我不想扩大规模并保持简单。

我目前正在尝试并感觉正确的另一个解决方案是在请求创建的线程$http和请求创建的线程之间共享一个 SptStorageObject $cli。也许这是依赖注入的问题,我在分享这个$store对象时遇到了麻烦。

0 投票
1 回答
1486 浏览

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

0 投票
1 回答
514 浏览

websocket - 可以使用 ReactPHP 进行广播吗?

是否可以在没有 Ratchet 的情况下使用 ReactPHP 将数据广播或发送到浏览器并用 javascript 捕获它以相应地处理它?

我在事件循环上有一个periodicTimer,有时它需要广播或发送给通过套接字连接的用户。我看到有一个类套接字,在 React github 项目页面上的示例中,它被实例化但未在 web-flow 中使用,仅在 netcat 上使用。是否可以使其在 socket.IO 或 Ratchet 等浏览器上本地工作?

工厂和连接工作正常,我只是不知道如何绑定套接字以使用事件循环向服务器发送/接收数据。

0 投票
0 回答
1204 浏览

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>
0 投票
1 回答
2447 浏览

php - 作曲家反应 PHP

我是新手。尝试安装 react php 来制作异步服务器。我使用 composer require react/react 安装它。然后在代码中包含 autoload.php。但它无法自动加载所需的文件。我写了这段代码

` 这是我的作曲家 json

这是我的供应商文件夹结构

0 投票
1 回答
2348 浏览

php - Ratchet PHP 和长时间运行的任务

我正在使用棘轮 php。我是这样开始的:

现在,在我onMessage()Pusherserver班级(实现MessageComponentInterface)中,我想执行一个漫长的阻塞任务。这将是一个 HTTP 请求,最多可能需要十秒钟才能完成。

如何onMessage()在前一个 HTTP 请求正在执行时自由处理其他请求?我无法使用 pthreads,因为我无权更改我已经获得的 php 版本(这是线程安全的)。

0 投票
1 回答
555 浏览

php - 通过 React Timer 调用(Ratchet)WampServer 方法

我正在使用 Ratchet 设置 WampServer。是否可以在循环中添加一个每 30 秒调用一次 WampServer 方法的计时器?

我尝试了以下代码:

但似乎没有计时器起作用。

注意:由于此代码是一个类方法,因此 $this 是对具有对 WampServer ($this->wampserver) 和 WampServer 使用的循环 ($this->loop) 的引用的类对象的引用。我调用的方法不是 WampServerInterface 的一部分。