Как мы можем реализовать частную систему сообщений (клиент к клиенту) с помощью Websockets (и PHP)?
Из того, что я понял, сервер передает сообщение, и все клиенты могут получать сообщение через обработчик события connection.onmessage. Мне было интересно, есть ли способ отправить сообщение только целевому пользователю в websockets?
Когда клиент отправляет сообщения ( ws.send( message );
), ваш сервер WebSocket получит сообщение. Сокеты, которые вы отправляете на это, полностью определяются вашим кодом сервера – вашей реализацией.
Для создания индивидуального чата вам нужен способ маршрутизации данных между двумя клиентами, участвующими в чате. Вам также нужен способ аутентификации, что только эти два клиента могут получить эту информацию.
Рамы WebSocket, как правило, обеспечивают дополнительный уровень PubSub, например, Pusher (я работаю), используя каналы . Вы найдете аналогичную терминологию наряду с темами и темами.
Когда у вас есть способ маршрутизации данных (сообщений чата) между двумя клиентами, вам необходимо рассмотреть возможность аутентификации подписки. Более подробную информацию можно найти по этому вопросу, который спрашивает, как создать частный канал между двумя пользователями . Речь идет о Ruby, но применима к любой технологии.