длинный опрос нетто нио фреймворк ява - PullRequest
10 голосов
/ 19 февраля 2010

Как я могу сделать длинный опрос, используя netty framework? Скажем, например, я получаю http://localhost/waitforx

но waitforx асинхронный, потому что он должен ждать события? Скажем, например, что он выбирает что-то из блокирующей очереди (может выбирать только когда данные в очереди) При получении элемента из очереди я хотел бы отправить данные обратно клиенту. Надеюсь, кто-нибудь может дать мне несколько советов, как это сделать.

Большое спасибо

Ответы [ 3 ]

10 голосов
/ 07 июня 2010

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

void messageReceived(...) {
    HttpResponse res = new DefaultHttpResponse(...);
    res.setHeader(...);
    ...
    channel.write(res);
}

// In a different thread..
ChannelBuffer partialContent = ...;
channel.write(partialContent);
3 голосов
/ 07 апреля 2012

Вы можете использовать netty-socketio проект. Это реализация сервера Socket.IO с поддержкой длинных опросов. На веб-странице вы можете использовать клиент Socket.IO javascript lib.

0 голосов
/ 02 октября 2013

Вы также можете сделать следующее в [sfnrpc]: http://code.google.com/p/sfnrpc

Object object = RPCClient.getInstance().invoke("#URN1","127.0.0.1:6878","echo",true,60,"", objArr,classArr, sl);

Истина заставляет связь быть синхронной.

...