gpt4 book ai didi

php - 如何使用 predis 多次发布

转载 作者:行者123 更新时间:2023-12-03 23:04:15 27 4
gpt4 key购买 nike

如何在客户端之间多次发布信息?
我的意思是当我从一个用户向另一个用户发布信息时,他会收到并向后发送,但这只有一次。
因为当一个用户向另一个用户发送内容时,GET 正在加载并且接收停止,我怎样才能做到这一点以便客户端永远接收,而不是一次?

最佳答案

pub/sub 的工作原理:就像一个 channel ,你从一侧输入,从另一侧得到相同的。

因此只有当有一些订阅者时才会收到发布者数据。

使用 pubSub 上下文并订阅一个 channel 说“x”,然后从另一端继续获取数据,比如从用户那里获取数据,并每次都使用发布命令将其发布到同一 channel 。

订阅者:

$redis = new Predis\Client(// put setting here, if req);
$pubsub = $redis->pubSub();
$pubsub->subscribe($channel1);

foreach ($pubsub as $message)
{
switch ($message->kind) {
case 'subscribe':
echo "Subscribed to {$message->channel}\n";
break;

case 'message':
// do something
break;
}
}

发布者:

while(1) // or whatever condition
{

$redis->publish($channel2, $userdata);

}

您可以使用聊天消息来断开连接,例如发布退出并在订阅者处检查如果退出然后关闭连接然后在发布者端检查如果没有订阅者附加,也将其关闭。

关于php - 如何使用 predis 多次发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6677113/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com