Потоковый ответ обратно клиенту из ServerResource - PullRequest
1 голос
/ 06 марта 2012

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

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

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

1 Ответ

0 голосов
/ 06 марта 2012

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

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

...