Возможна или нет связь между публикацией и подпиской клиента Ruby REST?

Я знаю интерфейс REST rails, который позволяет мне получать доступ к источникам. и я знаю о стратегии публикации-подписки для передачи сообщений

Можно ли реализовать REST-клиент (не браузер, а ruby-клиент работает на устройстве arduino) для доступа к ресурсу, если ресурс (например, сервер сообщил клиенту, что ресурс теперь доступен, который вы можете получить) доступен через стратегию публикации подписки?

Мне известно о Фэй. Можно ли реализовать REST-клиент, используя Faye для получения через публикацию-подписку для ruby? Если это невозможно с Faye, что может быть другим решением для клиента Ruby REST для создания связи с публикацией и подпиской? Как Фэй может сообщить ruby-клиенту об уведомлении о ресурсах?


person Rimon    schedule 23.01.2015    source источник
comment
ИМХО, вы смешиваете два не относящихся к делу понятия. REST позволяет вам получать доступ к источникам, а PubSub — это система обмена сообщениями. Однако вы можете использовать REST в качестве слоя для вашего PubSub для доступа/поиска соответствующих сообщений.   -  person Yan Foto    schedule 23.01.2015
comment
Это то, что мне точно нужно. Вы можете использовать REST в качестве слоя для вашего PubSub для доступа/поиска соответствующих сообщений. Но какому подходу я должен следовать? не могли бы вы предложить мне использовать ruby   -  person Rimon    schedule 23.01.2015
comment
Извините, но вы должны переформулировать свое утверждение и превратить его в вопрос.   -  person Yan Foto    schedule 23.01.2015


Ответы (1)


REST основан на HTTP, поэтому это запрос-ответ. вы не можете сделать сервис Pub/Sub с REST.

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

И после уведомления вы можете сделать запрос Ajax к REST и получить, например, новую запись.

Но лучший подход — использовать Faye для отправки изменений клиенту.

Не знайте, это довольно просто.

person Stanislav Mekhonoshin    schedule 23.01.2015
comment
Спасибо за ваш ответ. Не могли бы вы рассказать мне немного больше, как Фэй может сообщить об уведомлении клиенту ruby? Если возможно, пожалуйста, дайте мне несколько шагов. - person Rimon; 23.01.2015
comment
Это широкая тема для SO. Просто посмотрите этот railscast railscasts.com/episodes/260-messaging-with-faye - person Stanislav Mekhonoshin; 24.01.2015
comment
Я смотрел этот рейлкаст, где для определенного канала создается браузерный клиент. - person Rimon; 24.01.2015
comment
Таким образом, сервер уведомит клиента через Faye. Вам остается только реализовать это. Я не могу предоставить вам реальный код, потому что ничего не знаю о вашем приложении. - person Stanislav Mekhonoshin; 24.01.2015
comment
Я смотрел этот railscast, где клиент браузера создается с использованием Javascript, но мне нужно создать ruby-клиент без браузера для определенного канала. Я понимаю этот рейлкаст. но, как вы упоминали ранее, я бы использовал Faye для уведомления клиента о новых ресурсах или о том, что вы хотите отслеживать - как вы можете отправить это уведомление? не могли бы вы описать - person Rimon; 24.01.2015
comment
Итак, вы хотели бы получать данные не в браузере? Тогда имеет смысл использовать какую-то очередь сообщений (ZeroMQ, RabbitMQ). Faye это в основном для уведомлений браузера. - person Stanislav Mekhonoshin; 24.01.2015
comment
Большое спасибо за ваш ответ. да, мне не нужно использовать в браузере, но клиент ruby ​​​​будет работать на устройствах (arduino), где браузер недоступен. Я знаю, как работает Rabbitmq. но я не хочу использовать этот средний слой. У меня есть еще один вопрос, я мало что знаю о Ruby Eventmachine. Можно ли применить ruby ​​eventmachine или любое другое решение без этого среднего уровня для отправки уведомления на это устройство с http-сервера? - person Rimon; 24.01.2015
comment
Ну, http-сервер не может отправлять данные без запроса. А eventmachine — это фреймворк для сетевых приложений. Это не дает вам никаких функций push-сообщений. Попробуйте zeromq, это действительно маленькая и простая библиотека. Я уверен, что это удовлетворит вас. - person Stanislav Mekhonoshin; 24.01.2015