Вопрос

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

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

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

Это было полезно?

Решение

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

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

// In a different thread..
ChannelBuffer partialContent = ...;
channel.write(partialContent);

Другие советы

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

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

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

Истина приводит к тому, что коммуникация становится синхронной.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top