Хотите выбрать из: Node.js Meteor.js Ratchet RabbitMQ для веб-чата реального времени (форум)

Я сделал некоторые исследования, прежде чем задавать этот вопрос, но я не мог найти конкретного ответа для моей ситуации.

Я хочу создать WebChat с синхронизацией в реальном времени с БД на сервере. (MySQL или MongoDB - все в порядке) Но о синхронизации данных есть несколько способов сделать это:

  1. PHP + websockets от Ratchet, и моя работа заключается только в создании протокола JSON для аутентификации и обмена сообщениями. Многие документы, много учебников. (я знаю, что веб-сайты не работают в IE, но неважно)

  2. node.js + socket.io - существует такое же техническое решение, как и 1., но на другом языке.

  3. node.js + meteor.js (sockJS) - кажется, что ребята все работали, и мне не нужно добавлять какие-либо функции протокола, просто закодируйте логику. Но как насчет высокой нагрузки? Как насчет документации ... очень молодой рамки.

  4. Tornado + TornadIO2 (socket.io) + RabbitMQ

Может ли кто-нибудь сравнить RabbitMQ с meteor.js? По производительности. Может ли кто-нибудь сказать, какой путь лучше?

Я не знаю обо всех фреймворках, поэтому, если у меня есть лучшие варианты, чем те четыре, пожалуйста, скажите мне :)

Пожалуйста, дайте мне свое мнение. Спасибо!

17
nl ja de
Используйте sockjs и rabbitmq webstomp. Подключается непосредственно к кластеру rabbitmq от клиента, выбирая наиболее подходящий транспорт для клиента.
добавлено автор redsquare, источник
Есть много решений для этого. Этот справочник по веб-технологиям в режиме реального времени содержит некоторые компоненты, которые вы могли бы использовать.
добавлено автор leggetter, источник
Почему бы не комбинировать node.js + socket.io с rabbitmq? Это возможно: P
добавлено автор randunel, источник

3 ответы

Я рекомендую сервер websocket на основе PHP : Ratchet . Я использую его, и этот ссылка - сравнительный анализ серверов webSocket между Ratchet и SockJS .

Becuase you want to make webchat then need best performance and good cpu power.Ratchet has good solutions for handle message between client and server.It has broadcast send messaging and special send messaging for a group of clients,Also it has good control on server events for example MySQL update by ZMQ Libarary.Ratchet & ZMQ are on top of Reactphp Project

Также вы можете увидеть WebRTC (технология, связанная с WebSockets), что является еще одним усилием для улучшения коммуникационных возможностей современных веб-браузеров. WebRTC - это одноранговая технология для Интернета. Первыми приложениями для WebRTC являются голосовые и видеочаты в режиме реального времени. WebRTC уже является неотразимой новой технологией для мультимедийных приложений, и в Интернете доступно множество доступных примеров приложений, которые позволяют вам протестировать это с помощью видео и аудио через Интернет. Проверьте ссылку

12
добавлено
Я использую Ratchet в своем решении, однако теперь я хочу отправить двоичные данные, если я переключусь на Tornado или Twister, любезно советую
добавлено автор M.Hefny, источник
Извините, я не использую Tornado, поэтому я не знаю, но эта ссылка: tornadoweb .org/en/stable/twisted.html может помочь вам. Возможно, вы захотите задать отдельный вопрос с тегами только торнадо
добавлено автор ShahRokh, источник

Для синхронизации данных веб-клиента в реальном времени решения, о которых я знаю, это:

2
добавлено
@AnixPasBesoin - Firebase может использоваться как автономный BaaS. Но вы также можете использовать Firebase с другими фреймворками. Быстрый запуск Firebase ссылается на библиотеки для Clojure, Go, Java, PHP, Perl, Python и ruby firebase.com/docs/rest/quickstart.html По мере того, как приложение растет, скорее всего, вам придется писать свои собственные функции, которые не выполняются на клиенте. Возможно, вам понадобится интеграция для этих сценариев.
добавлено автор leggetter, источник
Firebase - это целое BaaS, я не могу понять, почему вы упоминаете его здесь. Разве это не выходит за рамки этого вопроса?
добавлено автор AnixPasBesoin, источник

К сожалению, я могу говорить только за первые три. Мой опыт работы с веб-сайтами в целом (включая socket.io) был подпараметром, включая спорадические разъединения и запутанную систему соединений. С учетом сказанного, однако, он очень мощный и разнообразный. С помощью websockets вы можете запускать сервер или клиент практически на любой платформе. Socket.io ограничивает это до некоторой степени, но на самом деле это всего лишь подмножество веб-карт. Однако Метеор - совершенно другой мяч. Хотя сначала это сбивает с толку, я был очень впечатлен тем, насколько легко создавать и развертывать приложения. Он мощный и гибкий. В зависимости от того, насколько сложна WebChat, любой из них был бы хорошим вариантом. Если вы хотите сделать что-то более простое, я бы пошел с socket.io. Для более сложных я бы рекомендовал метеорит.

Надеюсь это поможет.

1
добавлено
Тем не менее, Метеор использует socket.io и websockets за кадром, правильно?
добавлено автор 7zark7, источник
Использование Meteor HTTP Long-Polling с использованием SockJS . См. cl.ly/image/0z031Z3H3g2F
добавлено автор leggetter, источник
Я так не верю. Я думаю, что они используют AJAX и Comet, хотя я не уверен. В любом случае разработчик напрямую не взаимодействует с веб-сайтами
добавлено автор Zwade, источник
pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

Node.js — русскоговорящее сообщество
Node.js — русскоговорящее сообщество
4 160 участник(ов)

Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было комфортным. Правила: https://rudevs.network/ByaMH6un7 См. также: @js_ru, @react_js, @angular_ru, @vuejs_ru, @devops_ru Вакансии и поиск работы: @javascript_jobs и @nodejs_jobs

Meteor.js - русскоговорящее сообщество
Meteor.js - русскоговорящее сообщество
84 участник(ов)

Смотрите также @webpack_ru @featherjs

Node: русскоязычное сообщество
Node: русскоязычное сообщество
28 участник(ов)

Независимое сообщество node разработчиков на русском языке. Правила: https://node-chat.ru/ Партнеры: @react_ru @ru_vuejs @nuxtjs_ru @ru_docker @nlp_ru