È possibile lasciare che il server invii messaggi a tutti i client connessi senza attendere l'intervento da parte loro? Lasciatemi spiegare :-) Ho letto lo docs/examples e non ho trovato nulla che soddisfi le mie esigenze: il flusso è sempre lo stesso; un client si connette (ad esempio una chiamata GET a un'API Rest), la connessione è sospesa e fino a quando non viene ricevuta una nuova chiamata API (ad es. una chiamata POST) il server semplicemente attende (o almeno questo è ciò che ho capito). Il mio caso d'uso è piuttosto diverso: voglio che il server invii alcune "notifiche" non appena i nuovi dati saranno disponibili. Questo sarebbe il mio caso d'uso (abbastanza simplifed):Atmosfera Jersey - Messaggi server
- client A si connette al server
- connessione è sospesa dal momento che nessun nuovo dato è disponibile al momento
- Il server viene notificato sono disponibili nuovi dati da un esterna sorgente e lo trasmette al client a
- Passare al punto 2
Quello che ho realizzato finora è sempre la connessione stabilita con successo. Il prossimo passo è risolvere questo problema del server. Devo dire che questa tecnologia è completamente nuova per me, quindi è possibile che abbia frainteso il modo in cui qualcosa funziona. Se è così, fammi sapere!
Questo è il mio stack:
- Primavera 3.2.0 STAMPA
- Jersey 1,8
- Atmosfera Jersey 1.0.13
- Tomcat 7.0.40
Grazie a tutti in avanzare!
UPDATE: Dopo aver seguito this ottengo questo avvertimento, che non ho idea di come sbarazzarsi di:
2013-06-04 09:40:36,284 WARN [org.atmosphere.cpr.AtmosphereFramework] - Failed using comet support: org.atmosphere.container.Tomcat7AsyncSupportWithWebSocket, error: Tomcat failed to detect this is a Comet application because context.xml is missing or the Http11NioProtocol Connector is not enabled.
If that's not the case, you can also remove META-INF/context.xml and WEB-INF/lib/atmosphere-compat-tomcat.jar Is the Nio or Apr Connector enabled?
2013-06-04 09:40:36,285 WARN [org.atmosphere.cpr.AtmosphereFramework] - Using org.atmosphere.container.Tomcat7BIOSupportWithWebSocket
Ho seguito la struttura di applicazione commentato here, quindi questo non dovrebbe essere un problema. Ho notato che cambiando il trasporto in "websocket" invece di "long-polling" non si mostrano errori. Il server invia infine dati difficili :)