gpt4 book ai didi

php - 从 Predis 订阅函数中触发 Laravel 事件

转载 作者:IT王子 更新时间:2023-10-29 06:05:31 26 4
gpt4 key购买 nike

我有一个 Laravel php 应用程序和一个 NodeJS 客户端。我的客户端发生了一些事情,我想更新我的 php 后端,所以我向 Redis channel 发布了一条消息,在我的 Laravel 应用程序中,我有一个 Redis 订阅者在该 channel 上监听消息。

理想情况下,我想在收到消息时触发一个事件,但我收到此错误

[Predis\Response\ServerException]ERR only (P)SUBSCRIBE/(P)UNSUBSCRIBE/QUIT allowed in this context

我可以在订阅者中做我需要做的事情,比如更新存储库等......但我无法触发 Laravel 事件,这是在这里做的有意义的事情。

最佳答案

需要pubsub 使用两个连接。订阅者连接不能发出除subscribepsubscribeunsubscribepunsubscribe 以外的任何命令>(尽管@Antirez 暗示将来会有订阅者安全的 ping)。如果您尝试做任何其他事情,redis 会告诉您:

-ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / QUIT allowed in this context (note that you can't test this with redis-cli, since that understands the protocol well enough to prevent you from issuing commands once you have subscribed - but any other basic socket tool should work fine)

这是因为订阅者连接的工作方式非常不同 - 与基于请求/响应的工作方式不同,传入消息现在可以随时主动进入。

发布是常规请求/响应命令,因此必须在常规连接上发送,而不是订阅者连接。 For more information click here

关于php - 从 Predis 订阅函数中触发 Laravel 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31332534/

26 4 0
文章推荐: python - 在 Python 中解开 "None"对象
文章推荐: javascript - 在 native react 中写入/编辑/覆盖 json 文件
文章推荐: javascript - 将
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com