正在向服务器请求升级信息,来自服务器[200]的HTTP响应不允许HTTP升级到WebSocket...

我有在STOMP Java客户端(Spring项目)中开发的Websocket客户端和在Spring Boot中实现的服务器。

当客户端/服务器握手发生时,我遇到连接升级问题。

Java客户端代码List transports = new ArrayList<>(1);

transports.add(new WebSocketTransport(new StandardWebSocketClient()));

SockJsClient sockjsClient = new SockJsClient(transports);

WebSocketStompClient stompClient = new WebSocketStompClient(sockjsClient);

stompClient.setMessageConverter(new MappingJackson2MessageConverter());

stompClient.setTaskScheduler(new ConcurrentTaskScheduler());

StompSessionHandler sessionHandler = new SessionHandler();

stompClient.connect("ws://localhost:9090/health", sessionHandler);

服务器端@Override

public void registerStompEndpoints(StompEndpointRegistry stompEndpointRegistry) {

stompEndpointRegistry.addEndpoint("/health")

.setAllowedOrigins("*")

.withSockJS();

}

@Override

public void configureMessageBroker(MessageBrokerRegistry registry) {

registry.enableSimpleBroker("/topic");

registry.setApplicationDestinationPrefixes("/app");

}

[连接服务器时在客户端生成的异常16:18:50.955 / 3771 [SimpleAsyncTaskExecutor-1]错误o.s.w.s.s.c.DefaultTransportRequest-TransportRequest之后不再进行回退传输[url = ws:// localhost:9090 / health / 29 / 344d627baac949f5bab5506f05f1a7eb / websocket]javax.websocket.DeploymentException:来自服务器[200]的HTTP响应不允许HTTP升级到WebSocket在org.apache.tomcat.websocket.WsWebSocketContainer.connectToServerRecursive(WsWebSocketContainer.java:434)在org.apache.tomcat.websocket.WsWebSocketContainer.connectToServerRecursive(WsWebSocketContainer.java:392)在org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:194)在org.springframework.web.socket.client.standard.StandardWebSocketClient.lambda $ doHandshakeInternal $ 0(StandardWebSocketClient.java:150)在java.util.concurrent.FutureTask.run(FutureTask.java:266)在java.lang.Thread.run(Thread.java:745)

在tomcat localhost_access_log中,我看到以下请求信息127.0.0.1--[01 / Nov / 2018:22:09:41 +0530]“ GET / health / info HTTP / 1.1” 302-0127.0.0.1--[01 / Nov / 2018:22:09:41 +0530]“ GET /login.jsp HTTP / 1.1” 200 7649 16127.0.0.1--[01 / Nov / 2018:22:09:41 +0530]“ GET / health / 191 / 6828a1fdefee40cf8dc74e825d8d2b0c / websocket HTTP / 1.1” 302-0127.0.0.1--[01 / Nov / 2018:22:09:41 +0530]“ GET /login.jsp HTTP / 1.1” 200 7649 0

我没有找到有关如何解决此问题以及导致此问题的任何信息。

请帮助我解决此问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于C ++ 14/17的HTTP应用程序框架drogon,Drogon可用于使用C ++轻松构建各种类型的Web应用程序服务器程序。 Drogon是一个跨平台框架,它支持Linux,macOS,FreeBSD和Windows。其主要特点如下: *使用基于epoll的非阻塞I / O网络库(macOS / FreeBSD下的kqueue)提供高并发,高性能的网络IO,请访问[TFB测试结果](https://www.techempower。 com / benchmarks /#section = data-r19&hw = ph&test = composite)以获取更多详细信息; *提供完全异步的编程模式; *支持Http1.0 / 1.1(服务器端和客户端); *基于模板,实现了一种简单的反射机制,以完全解耦主程序框架,控制器和视图。 *支持cookie和内置会话; *支持后端渲染,控制器将数据生成到视图以生成Html页面。视图由CSP模板文件描述,C ++代码通过CSP标记嵌入到HTML页面中。 drogon命令行工具会自动生成C ++代码文件进行编译; *支持视图页面动态加载(运行时动态编译和加载); *提供从路径到控制器处理程序的便捷灵活的路由解决方案; *支持过滤器链,以方便在处理HTTP请求之前执行统一的逻辑(例如登录验证,Http方法约束验证等); *支持https(基于OpenSSL); *支持WebSocket服务器端和客户端); *支持JSON格式的请求响应,对Restful API应用程序开发非常友好; *支持文件下载和上传; *支持gzip,brotli压缩传输; *支持流水线; *提供轻量级的命令行工具drogon_ctl,以简化Drogon中各种类的创建以及视图代码的生成; *支持基于非阻塞I / O的异步读写数据库(PostgreSQL和MySQL(MariaDB)数据库); *支持基于线程池的异步读写sqlite3数据库; *支持ARM体系结构; *提供方便的轻量级ORM实现,支持常规的对象到数据库双向映射; *支持可在加载时由配置文件安装的插件; *通过内置连接点支持AOP。
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值