Подтвердить что ты не робот

JQuery

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

Ответ 3

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

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

Истинные причины синхронности связи.