2012-03-05 2 views
1

Я передаю содержимое моей конечной точке отдыха, и я реализовал его как ServerResource. Потребление входящего потока не является проблемой, но при обработке ввода я хочу начать отправку информации обратно клиенту. Тем не менее, я предполагаю, что это невозможно сделать из ServerResource, поскольку это потребует от меня фактического возврата представления (и впоследствии я бы прервал чтение из входного потока).Потоковый ответ обратно клиенту из ServerResource

Каков рекомендуемый подход в этом сценарии? Использовать raw Restlet и обрабатывать его в методе дескриптора? Как люди решали это в целом?

Очевидно, что это может быть легко достигнуто с использованием «сырого» HttpServlet, но я бы с удовольствием мог пользоваться реслитом по всей доске.

ответ

0

В то время как не самый чистый вариант, у вас есть может иметь клиента открыть второе подключение к серверу с просьбой о содержании. Серверу придется удерживать соединение открытым до тех пор, пока у него не будет данных для начала отправки, но вы получите тот же результат. Это своего рода «длинный опрос» подход к проблеме и, в архитектурном отношении, просто отделяет запись от чтения.

Есть, вероятно, лучше способ сделать это, но я, как правило, иду с быстрым решением сначала, а затем вернуться к нему, если это необходимо (например, если это проблема, в некотором роде, как ремонтопригодность или производительность)

+0

Спасибо за ваш ответ, но это будет работать, только если я контролирую клиентов, которых, к сожалению, нет. Использование HttpServlet напрямую работает нормально, поэтому на данный момент я придерживаюсь этой опции, но мне бы хотелось, чтобы все подошло к правильному подходу Restlet. – jonbo372

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