это мой первый вопрос 🙂
Так что моя проблема в том, что:
У меня есть сервер Apache, который использует сервер Redis (Predis). Также есть и сервер WebSocket (PHP WebSocketServer, кому нужно «подписаться» на сервер Redis.
Для подписки я использую:
$pubsub = $client->pubSubLoop();
// Subscribe to your channels
$pubsub->subscribe('control_channel', 'notifications');
// Start processing the pubsup messages. Open a terminal and use redis-cli
// to push messages to the channels. Examples:
// ./redis-cli PUBLISH notifications "this is a test"// ./redis-cli PUBLISH control_channel quit_loop
foreach ($pubsub as $message) {
switch ($message->kind) {
case 'subscribe':
echo "Subscribed to {$message->channel}", PHP_EOL;
break;
case 'message':
if ($message->channel == 'control_channel') {
if ($message->payload == 'quit_loop') {
echo "Aborting pubsub loop...", PHP_EOL;
$pubsub->unsubscribe();
} else {
echo "Received an unrecognized command: {$message->payload}.", PHP_EOL;
}
} else {
echo "Received the following message from {$message->channel}:",
PHP_EOL, " {$message->payload}", PHP_EOL, PHP_EOL;
}
break;
}
}
Я понимаю, что сервер WebSocket использует своего рода бесконечный цикл, и Predis (подписка) одинакова.
Так что ударь меня, если я ошибаюсь, или можешь дать мне совет.
Благодарю.
Задача ещё не решена.
Других решений пока нет …