2014-06-24 13 views
5

Tôi đang sử dụng khung Atmosphere và có trong phiên bản mới nhất của thư viện phương thức: BroadcasterFactory.getDefault() bị depricated. (Và phương pháp này đã được chủ yếu sử dụng ở khắp mọi nơi và tôi không thể tìm thấy một ví dụ làm thế nào để sử dụng "chiêu" mới)Khung không khí, BroadcasterFactory.getDefault() thay thế

Các trạng thái javadoc:

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

Tuy nhiên tôi không thể tìm thấy một tài liệu duy nhất làm thế nào để có được AtmosphereConfig để có thể lấy resourceFactory (đó là một phương thức cá thể).

Ai đó có thể cho tôi biết cách lấy cấu hình .. hoặc chính đối tượng AtmosphereFramework mà tôi có thể lấy cấu hình hoặc bất kỳ ví dụ nào là up2date?

Trả lời

0

Không chắc chắn nếu nó hoạt động, nhưng cố gắng để có được ServletContext và sử dụng getAttribute(AtmosphereFramework.class.getName()) để có được AtmosphereFramework. Nếu bạn đang sử dụng Spring, hãy cố gắng tự động phát trực tiếp AtmosphereFramework.

Bạn cũng có thể nhận được BroadcasterFactory từ AtmosphereResource và sau đó tra cứu cho Broadcaster như: dependency injection

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

Sử dụng. Trong dự án của tôi, nó sẽ như sau:

@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

Điều này không hiệu quả, ít nhất là tôi không biết tại sao, nhưng BroadcasterFactory không được tiêm đúng và không có giá trị. – CrazySabbath

Các vấn đề liên quan