2010-02-19 17 views
10

Come posso eseguire il polling lungo utilizzando il framework netty? Supponiamo ad esempio di recuperare http://localhost/waitforxpolling lungo netty nio framework java

ma waitforx è asincrono perché deve attendere un evento? Supponiamo ad esempio che recuperi qualcosa da una coda di blocco (può solo recuperare quando i dati sono in coda). Quando ricevo oggetti dalla coda, vorrei inviare i dati al client. Spero che qualcuno possa darmi qualche consiglio su come farlo.

Grazie

risposta

10

Si potrebbe scrivere un'intestazione risposta prima, e quindi inviare il corpo (contenuto) seguito da un altro thread.

+0

Funziona davvero? Puoi scrivere su un canale da un altro thread? È thread-safe? –

+0

Sì, è thread-safe –

+1

In che modo il "thread diverso" conosce quale canale utilizzare? Ad esempio, client1 esegue un sondaggio lungo, devo inserire il canale in un HashMap e recuperarlo una volta che l'evento si è verificato in modo da poter inviare il contenuto parziale? – pkrish

3

È possibile utilizzare il progetto netty-socketio. È l'implementazione del server Socket.IO con supporto polling lungo. Sul lato web è possibile utilizzare la lib di javascript Socket.IO client.

0

Si potrebbe anche fare quanto segue [sfnrpc]: http://code.google.com/p/sfnrpc

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

La vera comunicazione cause di essere sincrona.