2014-11-10 2 views
1

간단한 질문, Java API에서 방송을 어떻게 취소 하시겠습니까? 눈에 띄는 API에서 아무것도 찾을 수 없으며 Google에서 아무 것도 찾을 수 없습니다.대기 : 방송에서 탈퇴하는 방법

는 스택 :

@Path("subscription") 
public class CurrencyPairSubscription { 

    @GET 
    @Suspend 
    @Path("{pair}") 
    public Broadcastable subscribeToQuote(@PathParam("pair") String pair, 
      @Context final BroadcasterFactory broadcasterFactory) { 

     return new Broadcastable(broadcasterFactory.lookup(pair, true)); 
    } 
} 

이이 : 자바 7, 분위기 2.2.3, 대기 - 뉴저지 2.2.3, 서블릿 3, 톰캣 7

이 내가 가입하고있어 어떻게 내가 방송 해요 방법 :

public class BroadcasterServlet extends HttpServlet { 

    private static final long serialVersionUID = 1L; 

    @Override 
    public void init() { 

     System.out.println("Broadcast Servlet init"); 
     AtmosphereFramework framework = (AtmosphereFramework) getServletContext() 
       .getAttribute("AtmosphereServlet"); 
     MetaBroadcaster metaBroadcaster = framework.metaBroadcaster(); 


     metaBroadcaster.scheduleTo(RandomQuoteGenerator.generate() 
       .getIdentifier(), RandomQuoteGenerator.retrieveLastQuote(), 15, 
       TimeUnit.MILLISECONDS); 
    } 
} 

답변

3

클라이언트 측 JS/JQuery와에 당신은를 호출 할 수 있습니다연결을 닫는 방법. 서버 측에서, 당신은 user.Note을 취소 할 AtmosphereResource close 방법을 사용할 수 있지만

socket.unsubscribe(request); 

모든 atmosphereResource 연결에 액세스 할 수 있도록 AtmosphereResourceFactory를 주입 시도 할 수 있습니다.

@Inject 
private AtmosphereResourceFactory resourceFactory; 

는 고유의 UUID를 찾아 내가 서버 측에서 취소 할 필요가 없습니다 그냥 클라이언트가 그것을 처리하도록 할 수 있습니다처럼 보이는 연결

resourceFactory.find(userUUID).close(); 
+1

을 닫습니다. 그 맞습니까 ? – AfterWorkGuinness

+1

예, 일반적으로 클라이언트 측에서 수신 거부합니다. – user23123412