2015-03-08 5 views
1

В настоящее время я использую meteor.js для приложения для социальных сетей, которое я создаю. В настоящее время я изо всех сил стараюсь найти лучший способ разработки новостей для моих пользователей. Пользователи могут следить друг за другом и создавать должности, которые теоретически должны идти к их последователям. Я придумал две возможные концепции, которые будут работать теоретически.Концепция создания ленты новостей

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

  • Этот способ кажется ужасно неэффективным, но это способ.

II. Другим способом было бы для каждого пользователя иметь свой собственный «хаб», или каждый пользователь просто подписался и прослушал изменения в концентраторе пользователя.

  • Этот способ кажется лучше, но я должен был бы выполнить цикл for-loop при запуске и подписаться на каждого пользователя вручную. Это может вызвать небольшую задержку при запуске.

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

ответ

0

Посмотрите на пакет reywood:publish-composite. Я делаю что-то подобное в своем приложении и использую этот пакет, чтобы выполнить соединение. В вашем случае люди следующие люди поэтому, создавая публикацию, которая возвращает набор пользователей, за которыми следует человек, вы можете в то же время вернуть объединение всех своих сообщений.

+0

Спасибо, что это похоже на то, что мне нужно –

0

Построение масштабируемой технологии подачи является довольно сложной задачей. С Meteor это еще сложнее, потому что MongoDB не очень хорошо подходит для хранения реляционных данных, поскольку он является нереляционной базой данных, а создание публикаций, в которых публикуются «объединенные» данные, не является простым. Было написано много статей о проблеме создания масштабируемой технологии подачи, видели ли вы мой article при использовании Meteor в сочетании с Stream для создания решения, которое соответствует вашим потребностям?

Другим маршрутом будет использование инфраструктуры с открытым исходным кодом для создания бэкэнд для вашей технологии подачи. Посмотрите на Stream-Framework, в репозиториях README также есть большой список ресурсов для создания масштабируемой технологии подачи.

Смежные вопросы