Почему я не могу обратиться к свойству resourceId в Ratchet?

Как я могу правильно сохранить соответствие подключения и user_id в Ratchet для отправки сообщения конкретному пользователю через WebSocket? Я столкнулся с проблемой, что не могу обратиться к свойствам переменной $conn, таким как $conn->resourceId, $conn->WebSocket, $conn->httpRequest, и получаю ошибку undefined. Как я могу решить эту проблему и правильно реализовать отправку сообщений пользователю?
  • 26 декабря 2023 г. 11:07
Ответы на вопрос 1
В Ratchet для доступа к свойству resourceId вы должны использовать метод getId() вместо прямого доступа к свойству. Вот как это выглядит:

$conn->getId();

Чтобы сохранить соответствие подключения и user_id, вы можете использовать ассоциативный массив или другую структуру данных. Вот пример:

$connections = [];
$connections[$user_id] = $conn;

Теперь у вас есть соответствие между user_id и соединением WebSocket. Вы можете использовать это соответствие для отправки сообщений конкретному пользователю. Например:

$userId = '12345';
$message = 'Hello, user!';
$connections[$userId]->send($message);

Это отправит сообщение "Hello, user!" конкретному пользователю с user_id '12345'.

Убедитесь, что вы выполнили подключение WebSocket в вашем коде и установили правильный обработчик сообщений для обработки входящих сообщений.
Похожие вопросы