Задать вопрос
librown
@librown
На-все-руки-мастер и немного кодер

Как прикрутить на сайт форму «вопрос-ответ» в виде онлайн чата?

Здравствуйте!
Прикручиваю к проекту функционал "справочной" - посетители задают вопрос и тут же (в течение нескольких минут, если оператор онлайн) получают ответ. Примерно так это сверстал:
b7c6be9221.png
Я программист-любитель, на проекте использую php, sql и js. В современных js-фреймворках не разбираюсь (слышал что-то про socket.io и node.js). Подскажите, пожалуйста, в какую сторону копать, чтобы максимально просто и быстро реализовать такой функционал:

1. Когда посетитель задает вопрос - приходит куда-нибудь уведомление (мессенджер, почта)
2. Оператор сайта отвечает на вопрос (из админки, месенджера)
3. Вопрос и ответ сохраняются в БД
4. Посетитель тут же, без перезагрузки страницы, получает ответ.

Классный, работающий по такой схеме пример тут: sevastopol.nashaspravka.ru
Посетители через форму задают вопрос, и тут же в течение нескольких минут операторы сайта отвечают на него. И, что самое важное, эти вопросы сохраняются в БД сайта и хранится история вопросов и ответов.

Спасибо.
  • Вопрос задан
  • 1658 просмотров
Подписаться 2 Оценить 2 комментария
Решения вопроса 1
@Levhav
Возьмусь за разработку проектов любой сложности.
Для работы с web сокетами вам нужен комет сервер. Но так как вы не хотите поднимать его самостоятельно то можете воспользоватся готовым saas комет сервером. Он будет обеспечивать быструю доставку сообщений и снимать с вас проблемы поддержания серверной инфраструктуры. И в тоже время вся переписка может хранится у вас.
Это что то среднее между писать всё с нуля или использовать готовый продукт.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
IonDen
@IonDen
JavaScript developer. IonDen.com
Такие модули сегодня модно покупать у сторонних компаний. Очень много предложений на рынке.

Но если все же хотите сами, то для такого "чата" достаточно AJAX, никаких веб-сокетов не нужно, так как существует большой лаг между вопросом пользователя и ответа оператора. Достаточно раз в 30 секунд запрашивать сервер на наличие ответа по таймеру и всё.

Чтобы сделать это на Ajax вам будет проще всего воспользоваться jQuery и его Ajax API
Ответ написан
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Решение с аяксом не разумно ниразу по куче причин, от user experience до нагрузки на сервер.
Если хочется саму пилить - то собсвенно node.js+socket.io. Примеров полно socket.io/docs
Я бы не стал пилить сам и взял какой нибудь www.jivosite.ru

PS
Денис Инешин
никаких веб-сокетов не нужно, так как существует большой лаг между вопросом пользователя и ответа оператора" не существует
Не существует лага. Не должно существовать. Если операторы не выдрессированны отвечать за 10-15 секунд максимум - от внедрения это штуки будет больше негатива чем пользы.
Ответ написан
@leadproduc
Посмотрите тут, у них было вроде что-то подобное...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы