Кто работал с Centrifugo как подписываться на приватные каналы. Написал небольшой код для теста, но сообщения в тестовый чат всё равно не приходят. Если делать подписку на простой не приватный канал "channel1" то всё работает.
<?php
require __DIR__ . '/vendor/autoload.php';
$client = new \phpcent\Client("http://centrifugal.test:8000/api");
$client->setApiKey("b7a7dc68-c285-47ab-b1e5-25a46b9d1050");
$token = $client->setSecret("60b6000f-c1a4-472b-bb2c-1ec8eee34717")->generatePrivateChannelToken('1', '$channel1');
$client->subscribe('$channel1', $token);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>centrifugal.test</title>
</head>
<body style="width: 100%">
<div style="width: 100%;display: flex; justify-content: center">
<div style="width: 800px;height: 400px; border: 1px black solid; display: flex;flex-direction: column;justify-content: space-between">
<div class="log">
<ol id="log-text"></ol>
</div>
<div style="width: inherit">
<input type="text" id="input_send" style="width: inherit; height: 40px">
</div>
</div>
</div>
<div id="counter"></div>
</body>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/centrifugal/centrifuge-js@2.8.4/dist/centrifuge.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#input_send').on('keyup', function (event) {
if (event.keyCode === 13) {
$.ajax({
url: 'http://centrifugal.test/server.php',
method: 'post',
data: {'publish': $(this).val()},
success: function (data) {
console.log(data);
}
})
}
})
});
const container = document.getElementById('counter')
const centrifuge = new Centrifuge("ws://centrifugal.test:8000/connection/websocket");
centrifuge.setToken("<?= $token ?>");
centrifuge.on('connect', function(ctx) {
console.log("connected", ctx);
});
centrifuge.on('disconnect', function(ctx) {
console.log("disconnected", ctx);
});
centrifuge.connect();
</script>
</html>
server.php
<?php
require __DIR__ . '/vendor/autoload.php';
$client = new \phpcent\Client("http://centrifugal.test:8000/api");
$client->setApiKey("b7a7dc68-c285-47ab-b1e5-25a46b9d1050");
if (isset($_POST['publish'])) {
$client->publish('$channel1', $_POST['publish']);
}
Вот здесь смотрю результат.