问题标签 [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.
reactphp - ReactPHP 每个循环运行两次
我正在尝试学习现在的技术——reactPHP。但我堆满了启动脚本。我稍微编辑了一下,但我有问题,如果我调用反应循环,脚本会执行两次。
我有这个代码:
如果我调用http://localhost:1337/react/index.php我会进入 data.txt 这个
我只期待一个值。
php - 通过 WebSocket 进行身份验证
我正在使用 Ratchet(基于 ReactPHP)来托管需要用户 Oauth 令牌才能连接到 Twitter 的 WebSocket 服务器。我应该如何安全地对用户进行身份验证?
php - reactPHP 承诺同步执行
我正在尝试使用 reactPHP 实现类似 js 的承诺。但是由于某些原因同步执行的方法,end_at
只有在 promise 解决后才打印。
代码:
php - Reactphp无法获取流上的总数据
我正在使用reactphp库,并且正在使用发送不同大小的包的设备。我的问题是当我得到数据时
我只得到第一个包裹的一部分。有没有办法一直等到设备发送所有数据?
在这里,在wireshark 上捕获最后一个包是我无法通过react 得到的包。
php - ReactPHP libevent 和 socket_pair 抛出错误
我有一个问题,然后我将 ReactPHP 事件循环与 stream_socket_pair 一起使用。
使用 StreamSelect 循环它可以完美地工作,但后来我尝试将它与 LibEvent 扩展一起使用,我得到了无限的错误流:
重现此错误的最少代码
php - 在运行服务上写入带有日期的日志文件
我用 reactphp 创建了一个服务,它运行并做了一些事情。它作为守护进程启动,因此所有输出都应记录在文件中。此日志文件应命名为'foo-log-file-$(date "+F")'。我想每天都有一个日志文件。
问题:
如前所述,脚本作为服务运行,不会停止。因此,脚本的起始调用只进行一次。
因此,从此脚本打印到控制台的所有内容都保存到文件中,但文件仅在调用时使用日期字符串创建,并且不会使用新日期更新。
问题:
是否可以在不在 php-script 中编写日志逻辑的情况下解决这个问题?我可以用 bash 处理这个要求吗?
php - 在不活动一段时间后在 PHP CLI 脚本中运行函数
我使用 Symfony2 和RabbitMqBundle创建了一个将文档发送到 ElasticSearch 的工作程序。以一对一的速度索引文档比使用 ElasticSearch 批量 API 慢得多。因此,我创建了一个缓冲区,以千为一组将文档刷新到 ES。代码看起来(有点简化)如下:
这一切都很好,但有一个小问题。队列以不可预测的速度充满了消息。有时 100000 在 5 分钟内,有时不是一个小时。例如,当有 82671 个文档排队时,最后 671 个文档在收到另外 329 个文档之前不会被索引,这可能需要几个小时。我希望能够做到以下几点:
警告:科幻代码!这显然行不通:
现在,我知道 PHP 不是事件驱动的局限性。但这是 2015 年,并且有像 ReactPHP 这样的解决方案,所以这应该是可能的吧?对于 ØMQ 有这个功能。什么是适用于 RabbitMQ 或独立于任何消息队列扩展的解决方案?
我怀疑的解决方案:
- 有crysalead/code。它使用
declare(ticks = 1);
. 我不确定这是否是一种高效且可靠的方法。有任何想法吗? - 我可以运行一个 cronjob,每 5 分钟向同一个队列发布一条“FLUSH”消息,然后在收到此消息时显式刷新缓冲区,但这会作弊。
php - ReactPHP 和 EOT
当我关闭连接到 reactPHP 套接字的终端时,我会收到许多data
事件,其中数据由EOT
符号(十六进制04
)组成:
忽略它们的正确方法是什么?它们是无用的,因为我可以通过close
连接本身的事件对关闭的事务做出反应。
promise - Guzzle 和 react Promise 导致无限循环
我使用Guzzle 6 调用异步请求,然后使用React Promise/Deferred和 Event loop ,然后使用php-react-block通过解析获得结果。
首先我发送http请求如下:
在我如下调用此方法后
但是当我调用 Clue\React\Block\await($requestPromise, $loop) 时,系统无限循环并且无法解决任何承诺。我还添加了 queue->run() 方法来运行相关事件(LibEvent)的方法。但是系统仍然无限循环。
为什么系统无限循环?
感谢您的帮助
php - CakePHP 数据库会话处理程序和反应式编程
看下面的代码:
如果您执行第 1 步操作,休眠 5 秒,然后执行第 2 步,结果为“失败”。这意味着在我调用 write 方法的那一刻不会持久化会话变量。
如果你看一下 CakePHP DatabaseSession 类,你会发现:
这只是问题的一个例子。我在浏览器中将 ReactPHP 与 CakePHP 和 EventSource 一起使用。当您发送请求时,PHP 会在脚本完成之前多次释放套接字向浏览器发送信息。如果用户点击到第二步,而第一步还没有完成,那么 step2 会抛出一个错误,因为它无法读取会话变量。
我认为 PHP 只在 session_write_close 执行时保留会话。
我该如何解决这个问题?
是否可以在脚本完成之前保存会话?