Я разрабатываю чат, который в настоящее время работает с непрерывными запросами к серверу, что приводит к пустой трате ресурсов.
Поэтому я подумал, чтобы воспользоваться услугами, предлагаемыми толкатель Платформа. Проблема в том, что мне нужно сохранять каждое сообщение, которым обмениваются клиенты, в моей базе данных. Насколько я знаю, Pusher использует серверную часть только для аккредитации каналов и пересылки сообщений клиентам, в то время как связь между клиентами не проходит через мой сервер.
Я, наверное, уже нашел ответ на свой вопрос в эта тема (Лунный ответ)
кроме того, что я понятия не имею, как реализовать что-то подобное … некоторую помощь?
Вы можете инициировать события сообщений чата одним из двух способов:
В сценарии 1 сообщения проходят через ваш собственный сервер, поэтому вы можете легко сохранить их в базе данных.
В сценарии 2 вы можете настроить клиентское событие WebHooks. Используя их, маршрут сообщения:
Клиент -> Pusher WebSocket API -> Все клиенты && WebHook -> Ваш сервер
Затем вы можете хранить клиентские сообщения о событиях в вашей базе данных, когда они поступают через WebHook.
Вы устанавливаете WebHook для своего приложения Pusher на панели инструментов.
Просто выберите настройку WebHooks для приложения.
Создайте новое «клиентское событие» WebHook, используя конечную точку в вашем собственном приложении в качестве URL:
WebHook будет создан, поэтому каждый раз, когда для этого приложения запускается событие клиента, эта конечная точка будет достигнута.
Формат POST
запрос на указанный вами URL будет:
{
"name": "client_event",
"channel": "name of the channel the event was published on",
"event": "name of the event",
"data": "data associated with the event",
"socket_id": "socket_id of the sending socket",
"user_id": "user_id associated with the sending socket" # Only for presence channels
}
Итак, вам нужно проанализировать тело запроса и получить необходимую информацию.
Пожалуйста, не забудьте прочитать Документы WebHook и следуйте инструкциям по безопасности.
Рассматривали ли вы использование облачной базы данных с синхронизацией данных, как Firebase или же Хранение в реальном времени? Вы получите долговременное сохранение сообщений и связь в реальном времени, когда данные обновляются / вставляются в единый API.