2013-08-17 4 views
0

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

Это было изготовлять я планировал использовать:

  1. Сценарий развертывания вызывается.
  2. В конце сценария мой сервер Meteor уведомляется о развертывании сценария.
  3. Сервер вставляет документы, содержащие информацию о развертывании.
  4. Все клиенты получают новый документ и повторно снимают.

Единственная проблема, с которой я столкнулся, - это шаг 2.

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

Другие варианты - реализовать DDP самостоятельно, но это, вероятно, не так просто, если не в браузере.

Я посмотрел немного на meteor-collectionapi, который является REST API для Метеора, но он чувствует, как что будет нарушать принципы Метеор, и это также, кажется, сломана при использовании Meteor 0.6.5

Так что мой вопрос действительно, как уведомить сервер об изменениях в методе Метеор?

ответ

1

В REST API нет ничего плохого. В конце концов, HTTP - это основной разговор на веб-сервере.

На сервере, слушать следующим образом (0.6.5 код):

WebApp.connectHandlers.stack.splice(0,0,{ 
    route: '/some/long/secret/route', 
    handle: function(req, res, next) { 
    if(req.method === 'POST') { 
     // Listen for deploy information 
     // Insert info to DB 
    } 
    }, 
}); 

И тогда вы можете просто curl правильный адрес и давать какие-либо данные, которые вы хотите. Рекомендуется включить секрет безопасности как один из параметров POST, чтобы какой-то удачный искатель не оставил ненужные данные.

+0

Удивительный ответ, чрезвычайно чистый! –

+0

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

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