gpt4 book ai didi

tomcat - spring-websocket 的 RestTemplateXhrTransport 是否有效?

转载 作者:行者123 更新时间:2023-11-28 22:29:33 24 4
gpt4 key购买 nike

我正在尝试使用 spring-websocket RestTemplateXhrTransport 进行集成测试,但我无法让它工作。

服务器使用 spring-websocket (4.1-RELEASE) 和按书配置设置:

@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");
}
}

我原以为下面的代码可以工作,但它只是在等待序言时超时。如果我查看网络流量,我可以看到前导码是由服务器发送的,但客户端在读取 header 后只是挂起等待数据:

    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);

我正在使用 Tomcat 应用服务器。它无法与 7.0.55 和 8.0.12 一起使用。

我还尝试查看 spring-websockets-portfolio 示例中的 IntegrationPortfolioTests。如果我在设置方法中注释掉添加 WebSocketTransport 作为主要传输的行并保留使用 RestTemplateXhrTransport 的行,则此测试用例也不起作用。

最佳答案

原来是我的病毒扫描器的“在线防护”造成的。一旦我关闭 AVG AntiVirus Business Editions 的在线屏蔽,传输就可以完美运行。看起来它不喜欢流数据。

关于tomcat - spring-websocket 的 RestTemplateXhrTransport 是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26040627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com