Можно ли сделать потоковый вызов RPC с помощью WAMP?

Я хотел бы использовать протокол WAMP для RPC и Pub/Sub с использованием веб-сокетов. В частности, я заинтересован в использовании http://crossbar.io/ в качестве сервера WAMP.

Я прочитал спецификацию для WAMP, и не было ясно, возможно ли передавать данные как часть вызова RPC от клиента. Кажется, есть поддержка потоковой передачи результатов с сервера.

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

4 ответа

Решение

Сегодня (2015/05) WAMP имеет прогрессивные результаты, но не прогрессивные запросы.

Разработка WAMP была (ну, до сих пор) основана на сценариях использования. У нас был сценарий использования прогрессивных результатов, но не прогрессивных запросов. Кроме того, не совсем понятно, как должны работать прогрессивные запросы.

Сервер и клиент равны в WAMP. Клиент в классическом смысле (например, браузер) может предложить серверу процедуру в классическом смысле для вызова, и это может использовать прогрессивные результаты вызова.

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

WAMP не поддерживает это. Я написал протокол RPEP по этой и другим причинам. RPEP имеет три режима: режим публикации/подписки (называемый «fireAndForget»), обычный режим RPC и режим четной потоковой передачи. В третьем режиме вы вызываете команду, и команда возвращает поток, который генерирует события. Здесь есть реализация для javascript (web и node.js): https://github.com/Tixit/rpep.js .

Другие вопросы по тегам