Meteor.js: подходит ли реализация DDP для приложений для обмена сообщениями?

Я смотрю на Meteor, чтобы создать сайт, сравнимый с урезанным Facebook. то есть

  • У него будут пользователи, которые могут подключаться к другим пользователям (путем «добавления в друзья» и/или «подписки»).
  • пользователи могут взаимодействовать с контентом, который они сами или другие пользователи создают/распространяют
  • Я хотел бы реализовать концепцию «стены» и «новостной ленты».

Первое, что вы заметите в фреймворке, — это мгновенная синхронизация данных на всех клиентах. Я предполагаю, что это то, что фреймворк называет «DDP»? (Пожалуйста, дайте мне знать, если это не так).

Вопрос:

  • Достаточно ли надежна эта штука, похожая на «DDP», для создания функции обмена сообщениями «входящие» (например, мессенджер Facebook)?

person Zach Smith    schedule 20.12.2015    source источник


Ответы (1)


DDP (примерно) представляет собой эффективную комбинацию некоторых методов XHR и веб-сокетов. А Meteor — это фреймворк для создания программ с использованием DDP. Вы можете проверить спецификацию.

DDP — это протокол между клиентом и сервером, поддерживающий две операции:

  • Удаленные вызовы процедур клиентом на сервер.
  • Клиент подписывается на набор документов, а сервер информирует клиента о содержимом этих документов по мере их изменения с течением времени.

Если вашему приложению нужна реактивность, и вы решили не использовать Meteor, вы, вероятно, изобретете слой между клиентом и сервером, который очень похож на DDP.

person Max Choi    schedule 20.12.2015
comment
Спасибо, я так понимаю, это означает, что DDP — это именно то, что необходимо для реализации функциональности, подобной «почтовым сообщениям»? В чем разница между XHR и веб-сокетом? для меня это звучит так, как будто XHR должен быть слоем поверх веб-сокета... - person Zach Smith; 20.12.2015
comment
1. Да. 2. Я думаю, что мое объяснение вводило в заблуждение. XHR и websocket сложно сравнивать, потому что они находятся в другом контексте. Если вы создадите функцию «Входящие» в своем приложении, я думаю, вы хотите, чтобы ваш пользовательский интерфейс отображал только что полученные сообщения без обновления браузера. Meteor и DDP отлично подходят для создания таких функций. Метеор умеет проверять, были ли изменены данные на сервере или нет. А DDP — это способ проверки и выборки данных. - person Max Choi; 20.12.2015