2014-06-24 11 views
5

Sto usando quadro Atmosfera e sembra nella versione più recente (s) della biblioteca del metodo: BroadcasterFactory.getDefault() è depricated. (E questo metodo è stato essenzialmente utilizzato in tutto il mondo e non riesco a trovare un esempio di come utilizzare il "via" nuovo)quadro Atmosphere, BroadcasterFactory.getDefault() alternativa

Javadoc stati:

@deprecated Use {@link org.atmosphere.cpr.AtmosphereConfig#resourcesFactory()} 

Tuttavia non riesco a trovare una sola documentazione di come ottenere l'AtmosphereConfig essere in grado di ottenere resourceFactory (che è un metodo di istanza).

Qualcuno può dirmi come ottenere la configurazione o l'oggetto AtmosphereFramework da cui posso ottenere la configurazione o qualsiasi esempio che è up2date?

risposta

0

Non sicuro se funziona, ma provare a ottenere ServletContext e utilizzare getAttribute(AtmosphereFramework.class.getName()) per ottenere AtmosphereFramework. Se stai usando Spring, prova ad autowire direttamente AtmosphereFramework.

È inoltre possibile ottenere BroadcasterFactory da AtmosphereResource e poi ricerca per Broadcaster come:

private String path; 

private BroadcasterFactory broadcasterFactory; 

@Ready(value = Ready.DELIVER_TO.ALL) 
public void onReady(final AtmosphereResource r) { 

    System.out.println("onConnect"); 

    r.addEventListener(new AtmosphereConnectionController()); 

    if(broadcasterFactory == null){ 
     path = r.getBroadcaster().getID(); 
     broadcasterFactory = r.getAtmosphereConfig().getBroadcasterFactory(); 
    } 
} 
//later in code 
broadcasterFactory.lookup(path).broadcast("message"); 
0

Usa iniezione di dipendenza. Nel mio progetto, va in questo modo:

@MeteorService(path = "/recursos/fila-de-atendimento", interceptors = {AtmosphereResourceLifecycleInterceptor.class}) 
public class FilaDeAtendimentoResource extends HttpServlet { 

    @Inject 
    private BroadcasterFactory broadcasterFactory; 

    ... 

    /** Used for registering for a message */ 
    public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException { 
     ... 
     Broadcaster broadcaster = broadcasterFactory.lookup(broadcasterId, true); 
     meteor.setBroadcaster(broadcaster); 
     ... 
    } 

} 
+0

Questo non funziona, almeno per me, non so perché, ma BroadcasterFactory non viene iniettato correttamente ed è nullo. – CrazySabbath