Pjax, Ajax, Yii2, как обновить контент на стороне собеседника?
Суть такова, есть база денных, где храниться переписка множества разных диалогов, в каждом диалоге по два собеседника. При написании сообщения со своей стороны Pjax работает, и я без перезагрузки вижу то что написал собеседнику, но у собеседника переписка не обновляется. Что усложняет саму переписку, обновлять страницу руками недопустимо!
Как сделать так чтобы, обновлялась переписка у всех, кому написали через Pjax, или просто написать javascript , который будет обновлять контент на стороне собеседника если в БД появилась новая запись, и чтобы это обновление не касалось тех, кому ещё не писали.
Есть id - того кто написал, id - того кому написали, token - уникальной переписки(диалога).
Подскажите, где есть решение. Очень буду благодарен узнать как это выглядит и работает.
Вы конечно можете реализовать все через Ajax - отправлять запрос который мониторит новые сообщение и т.п., но этот метод костыльный и годиться только для крайне маленьких проектах. Вообще для написания чата php как по мне не очень годиться, но коль Вы его по какой-то причине выбрали, то лучше реализовать это все на базе сокетов
У меня не чаты, а диалоги, переписка между пользователями, Ajax используется пока только для добавления записей в БД, я не знаю, на сколько крупным будет мой проект, но подстраховаться хочу на нагрузку в 500 000 человек в день.
поддерживаю Максим Федоров Ваша беда в неверном выборе инструмента. Делать чат надо через сокеты. С обычным ajax будет сложно.
Однако в html5 есть worker-ы, вот статья, думаю то что Вам надо: https://habrahabr.ru/post/132785/
Игорь Васильев: сокеты, если грубо, позволят Вам держать постоянное соединение с сервером и получать данные, как только произошло изменение (ответил собеседник). С ajax надо постоянно кидать запрос на сервер проверяя не ответил ли он.