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

17

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

Я хочу создать 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? По производительности. Может ли кто-нибудь сказать, какой путь лучше?

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

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

    
задан user1963921 09.01.2013 в 17:37
источник
  • Почему бы не объединить node.js + socket.io с rabbitmq? Это возможно: P –  randunel 09.01.2013 в 19:46
  • Используйте sockjs и rabbitmq webstomp. Подключается непосредственно к кластеру rabbitmq от клиента, выбирая наиболее подходящий транспорт для клиента. –  redsquare 10.01.2013 в 09:15
  • Есть много решений для этого. Это руководство по веб-технологиям в реальном времени предоставляет некоторые компоненты, которые вы могли бы использовать. –  leggetter 10.01.2013 в 10:49

3 ответа

11

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

Если вы хотите сделать веб-чат, тогда вам нужна лучшая производительность и хорошая мощность процессора. У Ratchet есть хорошие решения для обработки сообщения между клиентом и сервером. Он имеет широковещательную передачу сообщений и специальную отправку сообщений для группы клиентов, а также имеет хороший контроль на событиях сервера, например, обновление mysql по ZMQ Libarary.Ratchet & amp; ZMQ находятся поверх Reactphp Project

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

    
ответ дан ShahRokh 14.07.2013 в 06:26
  • Я использую Ratchet в своем решении, однако теперь я хочу отправить двоичные данные, если я переключусь на Tornado или Twister, любезно советую –  M.Hefny 20.12.2014 в 16:50
  • Извините, я не использую Tornado, поэтому я не знаю, но эта ссылка: tornadoweb.org/en/stable/twisted.html может вам помочь. Возможно, вы захотите задать отдельный вопрос с тегами только торнадо –  ShahRokh 04.01.2015 в 22:57
2

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

ответ дан leggetter 10.01.2013 в 12:41
  • Firebase - это целое BaaS, я не могу понять, почему вы упоминаете его здесь. Разве это не выходит за рамки этого вопроса? –  AnixPasBesoin 10.03.2016 в 03:56
  • @AnixPasBesoin - Firebase может использоваться как автономный BaaS. Но вы также можете использовать Firebase с другими фреймворками. Быстрый запуск Firebase ссылается на библиотеки для Clojure, Go, Java, PHP, Perl, Python и Ruby firebase.com/docs/rest/quickstart.html По мере того, как приложение растет, скорее всего, вам понадобится написать свою собственную функциональность, которая не выполнить на клиенте. Возможно, вам понадобится интеграция для этих сценариев. –  leggetter 10.03.2016 в 09:16
1

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

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

    
ответ дан Zwade 09.01.2013 в 21:21
  • Метеор использует socket.io и websockets за кулисами, правда, правильно? –  7zark7 09.01.2013 в 21:23
  • Я так не верю. Я думаю, что они используют AJAX и Comet, хотя я не уверен. В любом случае разработчик напрямую не взаимодействует с веб-сайтами –  Zwade 09.01.2013 в 21:25
  • Использование Meteor HTTP Long-Polling с использованием SockJS. См. Cl.ly/image/0z031Z3H3g2F –  leggetter 10.01.2013 в 12:35