2014-09-25 2 views
1

통합 테스트에 spring-websocket RestTemplateXhrTransport를 사용하려고하는데 작동하지 못합니다.spring-websocket의 RestTemplateXhrTransport가 작동합니까?

@EnableWebSocketMessageBroker 
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { 
    @Override 
    public void registerStompEndpoints(StompEndpointRegistry registry) { 
     registry.addEndpoint("/socket").withSockJS().setClientLibraryUrl("../common/lib/sockjs.js"); 
    } 

    @Override 
    public void configureMessageBroker(MessageBrokerRegistry registry) { 
     registry.enableSimpleBroker("/topic/", "/user/"); 
     registry.setApplicationDestinationPrefixes("/app", "/topic"); 
    } 
} 
내가 일할 수있는 다음 코드를 예상했을 것이다

하지만, 단지 시간이 초과 대기 :

서버는별로 - 책 구성에 스프링 웹 소켓 (4.1-RELEASE)로 설정되어 프리 엠블 (preamble). 내가 네트워크 트래픽을 보면, 나는 프리앰블이 서버에서 전송되는 것을 볼 수 있지만 클라이언트는 헤더를 읽은 후 데이터를 기다리는 달려 있습니다 : 나는 Tomcat 응용 프로그램 서버를 사용하고

List<Transport> transports = new ArrayList<>(); 
    RestTemplate restTemplate = new RestTemplate(); 
    RestTemplateXhrTransport xhrTransport = new RestTemplateXhrTransport(restTemplate); 

    // This makes it work, but that is xhr-polling, and I want xhr-streaming. 
    //xhrTransport.setXhrStreamingDisabled(true); 

    transports.add(xhrTransport); 
    SockJsClient sockJsClient = new SockJsClient(transports); 
    AbstractWebSocketHandler webSocketHandler = new AbstractWebSocketHandler() { 
     @Override 
     public void afterConnectionEstablished(WebSocketSession session) throws Exception { 
      System.out.println("connected"); 
     } 
    }; 
    sockJsClient.doHandshake(webSocketHandler, new WebSocketHttpHeaders(), new URI("http://localhost:8080/socket")) 
      .get(3000, TimeUnit.SECONDS); 

. 7.0.55와 8.0.12 모두에서 작동하지 않습니다.

또한 spring-websockets-portfolio 샘플의 IntegrationPortfolioTests를 살펴 보려고했습니다. WebSocketTransport를 기본 전송으로 추가하고 RestTemplateXhrTransport를 사용하는 줄을 남겨 두는 setup-method의 줄을 주석으로 처리하면이 테스트 사례가 작동하지 않습니다.

답변

0

내 바이러스 스캐너의 "온라인 방어막"이 원인 인 것으로 나타났습니다. AVG AntiVirus Business Editions의 온라인 방패를 끄면 전송이 완벽하게 작동합니다. 스트리밍 데이터가 마음에 들지 않는 것 같습니다.