Как общается фронтенд с БД в real-time webapp (на примере чата)?

Когда в рамках фронтенда приложения создается eventListener - тут все логично и ясно: есть конкретная связь между listener и его объектом, все происходит на одном клиенте.

Но как работает eventListening в динамичных real-time приложениях вроде чата?

я так понимаю, клиент должен как-то регистрировать свое примутствие на сервере и тот должен отправлять на клиента кадждую новую строку, добавленную в определенную таблицу бд.
Верно?
есть ли концептуальная разница между решениями этой задачи на бэкендах laravel и nodejs?
  • Вопрос задан
  • 588 просмотров
Решения вопроса 1
copist
@copist
Empower people to give
Посмотрите вживую чат на технологии websocket chat.socket.io и код этого чата на github https://github.com/socketio/socket.io/tree/master/...

Есть ли концептуальная разница между решениями этой задачи на бэкендах laravel и nodejs?

Концептуальная разница в том, что в данном случае сервер websocket уже работает на node.js и сам может обращаться к базе данных. А в случае с Laravel нужна будет прослойка между PHP и node.js которая обычно делается на какой-нибудь асинхронной очереди типа RabbitMQ.

As of November 2013, Socket.io's list of supported browsers was:

Desktop:
  • Internet Explorer 5.5+
  • Safari 3+
  • Google Chrome 4+
  • Firefox 3+
  • Opera 10.61+

Mobile:
  • iPhone Safari
  • iPad Safari
  • Android WebKit
  • WebOs WebKit


They achieve this level of support by using a variety of transports, depending on what the browser is capable of (again, from November 2013):

  • WebSocket
  • Adobe® Flash® Socket
  • AJAX long polling
  • AJAX multipart streaming
  • Forever Iframe
  • JSONP Polling


По-русски: они поддерживают всё браузерное старьё, что есть, путём комбинациии шести технологий, начиная от современного WebSocket и заканчивая JSONP
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@maxtm
Make money, not job
long polling ajax
websockets
Ответ написан
Комментировать
@Levhav
Возьмусь за разработку проектов любой сложности.
Для realtime приложений вам надо ознакомится с технологией комет
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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