问题标签 [amphp]

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

php - 为什么我使用 Aerys 收到“错误:在 null 上调用成员函数 end()”?

我试图将 aerys 放在我的 cms 上,但出现错误。正如我所见,后端返回的不是空值——堆栈跟踪中的#1,但它没有达到 $resp->end()。我被困在试图让这个值到达 end() 的过程中。

代码示例

堆栈跟踪:

怎么了?

0 投票
1 回答
59 浏览

amphp - 优雅地停止生成器

考虑以下代码:

据我了解,当此代码收到 aSIGINT时,回调 inLoop::onSignal将在下一个滴答时执行,因此循环将停止并且程序退出。

在这种情况下,如果循环$httpClient->send()while尚未结束,则不会执行下一行,也不会删除 Beanstalk 消息。然后将重试 Beanstalk 作业,如果 HTTP 请求不是幂等的,这可能会导致问题。我们可以用数据库调用代替 HTTP 请求。

有没有办法告诉循环不执行新的生成器并等待正在进行的生成器在SIGINT收到 a 时完成?

我一直试图解决这个问题,但找不到解决方案。

0 投票
1 回答
37 浏览

php - 如果数据没有密钥,如何从 Aerys parseBody 获取数据

我正在与Aerys合作,但我遇到了问题。当我通过发送参数时,post我不知道如何访问数据。

在文档中,他们使用以下功能:

$body = yield parseBody($request);

文档中,有两个函数可以使用parseBody 他们使用的getgetArray与密钥一起获取数据。正如我之前所说,我正在发送一个数据数组,但该数组没有特定key的要访问的数据。

您知道如何获取该数组的数据吗?如果 print$body它返回一个对象。

Aerys\ParsedBody Object ( [fields:Aerys\ParsedBody:private] => Array ( [0] => Array ( [0] => %222f384ae8-004b-44e1-8c6b-9b2a249b069f%22 ) ) )

0 投票
0 回答
1512 浏览

laravel - 如何在 laravel 中实现 amphp/websocket-client

我正在尝试通过异步网络套接字从Kite Connect获取数据馈送。我认为我可以在我的 Laravel 项目中使用amphp/websocket-client库,但我不知道从哪里开始。

如何集成此库以在我的 Laravel 应用程序中获取数据馈送?

如何使用不断涌入的数据流?

0 投票
2 回答
1151 浏览

php - 无法获得异步执行的 ReactPHP 承诺

我有一个 PHP 脚本,它将从多个 REST API 下载的数据处理为标准化格式,并构建此数据的数组或表。该脚本当前同步执行所有内容,因此需要很长时间。

我一直在尝试学习如何同时或异步执行获取和处理数据的函数,以便总时间是最慢调用的时间。根据我的研究,ReactPHP 或 Amp 似乎是正确的工具。

但是,我未能成功创建实际正确执行的测试代码。附上一个简单的例子,mysquare() 代表我更复杂的函数。由于网络上缺乏我想要达到的目标的示例,我被迫使用蛮力方法,在我的代码中列出了 3 个示例。

Q1:我是否使用了正确的工具来完成这项工作?

Q2:你能修复我的示例代码以异步执行吗?

注意:我是一个真正的初学者,所以使用最少高级编程术语的最简单的代码示例将不胜感激。

0 投票
1 回答
154 浏览

php - 使用 AMPHP 从数组创建迭代器

我在php中有一个数组:

当我做:

我明白了Call to a member function advance() on array

如何将我的数组变成迭代器?

0 投票
2 回答
288 浏览

php - Amphp Artax 错误

我使用了以下非常基本的 amphp/artax 示例

$URL 可以是任何 URL,例如http://www.yahoo.com

并出现以下错误

谁能帮我解决我已经设置的问题 cainfo=curl.pem

提前致谢

0 投票
1 回答
101 浏览

php - PHP中的套接字并发

我想知道是否有人对如何在同一服务器上打开多个套接字、在 PHP 中同时写入和读取数据有任何深入的了解。我应该使用像 Amphp 这样的并发框架还是有更好的选择来完成这项任务?我将如何继续构建它?基本上我想以非阻塞方式实现这样的目标:

0 投票
1 回答
543 浏览

php - 如何在 amphp 中正确地将关闭转为承诺?

我正在学习amphp。我想使用 amphp 中的事件循环将同步调用转换为异步调用。我的示例代码file_get_contents用作示例阻塞调用。

使用同步调用,它看起来像这样:

和输出:

我知道有 artax 可以异步调用。但是,我想学习如何正确地将阻塞代码转换为异步并发代码(非并行)。我已经成功地使用 amp 并行实现了它。

我相信如果我在 amp 中以异步方式成功实现它,正确的输出将是这样的:

我试过这段代码:

而是给了我预期的结果,它给了我这个错误:

结果似乎也同步运行,而不是异步运行。

我应该如何正确地做到这一点?

0 投票
1 回答
200 浏览

php - 使用zend框架3在php中进行多处理

是否可以从 http 请求在 php 中进行多进程/多线程。

背景

我正在做一个项目,我希望将一些数据(不是来自用户,因此数据上传是一致的)上传到 api。

我想解耦这个过程,如果数据上传成功,我通知这个客户端并断开它并在另一个线程中处理数据。现在,客户端等待处理数据并成功断开连接。

我的研究

我已经研究过分叉一个进程,但它总是带有一个警告,即不要在 Web 服务器上使用它,另外我想要一个可以与我正在处理的项目一起扩展的包/模块。

Pthreads:这是 php 线程模块。如上所述,它未配置为仅在 cli 上与 Web 服务器一起使用。

amphp:这是一个用 pthreads 构建的模块,它带有同样的警告。

这提示了一个问题,如何最好地解决问题?我理解挑战,如果您为每个连接打开一个新线程,您将有 1000 个线程用于 1000 个连接,并且如果增加,很容易使服务器超载,但我的情况是独一无二的,因为我不希望为人工连接使用多线程并且可以很容易地预测连接的数量。