JQuery
Как я могу сделать длинный опрос, используя netty framework? Скажем, например, я получаю http://localhost/waitforx
но waitforx
является асинхронным, поскольку он должен ждать события? Скажем, например, он извлекает что-то из блокирующей очереди (может только извлекать данные в очереди). При получении элемента из очереди я хотел бы отправить данные обратно клиенту. Надеюсь, кто-то может дать мне несколько советов, как это сделать.
Большое спасибо
Ответы
Ответ 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);
Истинные причины синхронности связи.