Лента новостей в реальном времени для подписчиков - какие инструменты и языки? - PullRequest
1 голос
/ 19 марта 2012

Я хочу реализовать ленту новостей для подписчиков, таких как Twitter, в режиме реального времени. Но я застрял, какие инструменты будут лучшими для моих целей. Решение (комплексное решение) должно быть готово к производству. Я пробовал node.js + socket.io + rabbitmq (node-ampq, rabbitJS), но узел часто падает ... Другое решение - Tornado + sockJS-tornadio, но я не уверен (и знаю, что Python не очень хорош). Прежде чем углубиться в код, мне просто нужно знать, какие инструменты лучше всего подходят для моих целей и могут быть «действительно» в реальном времени. Под «действительно» я имею в виду действительно быстрые запросы-ответы. Я пробовал RabbitMQ + PHP API + Ajax, но это не «действительно» в реальном времени, он использует ajax вместо, например, веб-сокетов.

Данные для новостной ленты будут выглядеть так: «Джон обновил свой профиль», «Doe загрузил новый файл» и что-то подобное.

Спасибо!

Ответы [ 3 ]

1 голос
/ 22 марта 2012

Я просто создаю веб-приложение в реальном времени. Пользователи могут перетаскивать элементы и общаться на одной странице. И я использую tornado + jquery pending + redis в качестве системы MQ. Это хорошо работает, но я собираюсь попробовать socket.io дляобрабатывать запросы в реальном времени.

1 голос
/ 19 марта 2012

Что это за сбои? Нод был довольно стабильным в течение некоторого времени, по крайней мере, для меня.

Node - прекрасное решение, но вы привносите некоторую сложность в связь между Node и PHP (которую вы хотите решить с помощью RabbitMQ). «Действительно» реальное время может быть легко реализовано с помощью socket.io, и, поскольку оно имеет несколько запасных вариантов, идеально подходит для привлечения широкой аудитории. У длинных опросов и друзей есть свои накладные расходы, но не слишком много, если события не очень частые.

Если вам проще интегрировать новостную ленту в вашу PHP-программу, и вы готовы принять незначительные накладные расходы, я скажу, сделайте это. В противном случае я бы инвестировал в Node. Платформа еще молода, но она хорошо созрела, ИМО.

0 голосов
/ 20 марта 2012

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

Если бы мне пришлось реализовать это сегодня, я бы использовал стек:

  1. Redis дляданные и публикация / передача по каналам.

  2. Торнадо в качестве сервера API.

  3. WebSocket для уровня связи, где это возможно.

...