当前位置: 首页 > news >正文

作品展示网站源码wordpress 调用

作品展示网站源码,wordpress 调用,最新获取网站访客qq接口,做期货主要看哪几个财经网站Springboot websocket前端无法访问到,Websocket因AOP代理 前端无法请求到 问题出现 在我后端springboot启动后,前端无法请求websocket请求连接到我们websocket服务器。 想要的效果 在我后端springboot启动后,前端可以请求到我们websocket…

Springboot websocket前端无法访问到,Websocket因AOP代理 前端无法请求到

问题出现

在我后端springboot启动后,前端无法请求websocket请求连接到我们websocket服务器。

想要的效果

在我后端springboot启动后,前端可以请求到我们websocket服务器,并且进行交互。

问题排查

出现的问题A

出现问题的代码:

package com.gsxy.core.config;import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {@Overridepublic void configureMessageBroker(MessageBrokerRegistry config){config.enableSimpleBroker("/topic");config.setApplicationDestinationPrefixes("/app");}@Overridepublic void registerStompEndpoints(StompEndpointRegistry registry){registry.addEndpoint("/ws").withSockJS();}}

问题出在没有告诉spring遇见wensocket协议该如何处理。

改正后的代码:

package com.gsxy.core.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;@Configuration
@EnableWebSocket
public class WebSocketConfig  {@Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();}}

出现的的问题B

问题出在Websocket在controller包下,在我们aop SystemAopImpl,对我们的contorller包下进行了所有代码增强。

/*** @author zhuxinyu 2023-10-23*/
@Component
@Aspect
public class SystemAopImpl implements SystemAop {/*** @author zhuxinyu 2023-10-23* 清理ThreadLocal 防止内存泄漏* @param joinpoint* @throws Exception*/@Override@After("execution(* com.gsxy.core.controller.*.*(..))")public void removeAllThreadLocal(JoinPoint joinpoint) throws Exception {ThreadLocalUtil.mapThreadLocalOfJWT.remove();ThreadLocalUtil.mapThreadLocal.remove();ThreadLocalUtil.DataOfThreadLocal.remove();}}

​ 因为在Spring AOP中使用的是IOC 和 AOP动态代理创建对象,在WebSocket中,如果代理类被代理了,可能会出现问题因为WebSocket容器会查找类上的注解,但是无法找到代理类上,因为@ServerEndpoint来自Java标准注解,并不是AOP,如果我们使用的是cglib动态代理技术,执行的是目标类的子类,这个字类包含我们的拦截逻辑和目标方法的引用,所以无法读取到websocket的注解,导致无法访问websocket,因为我们的websocket没有实现接口,默认实现的cglib动态代理技术,所以触犯了这个问题。jdk动态代理,他执行的是代理对象,这个代理类是包含了我们的环绕逻辑和我们目标类的代理对象,所以不会导致注解失效。

总结

使用websocket不能被cglib所代理。

必须告诉spring遇见websocket如何解决

http://www.yayakq.cn/news/466731/

相关文章:

  • 为了同学都能访问网站如何做有什么平台可以销售产品
  • 网站建设的目的与意义是什么网站建设案例单招网
  • 湖南省新邵县建设局网站安徽省工程建设项目信息网
  • 上海企业网站建设制作石狮网站建设科技
  • 给别人做网站的话术网站备案 幕布
  • 工业和信息化部五系网站建设小程序游戏开发平台
  • 网站免费推广的方法如何获取网站域名证书
  • 石家庄网站建设服务做 爱 网站视频
  • 快速免费做网站淘宝网做网站
  • 安监局网站建设方案案例中优衣库所采用的网络营销方式
  • 网站建设落后发言随州网站建设哪家好
  • 重庆高端网站建设价格代理网络是什么意思
  • 杭州门户网站建设公司要是360网站不安全怎么做
  • 网站1g空间多大亳州网站制作
  • 网站开发与设计岗位职责初步ps网页设计素材
  • php 网站开发缓存有那几种约会软件app前十名
  • 网站变灰色咸阳学校网站建设价格
  • 网站登录页面模板下载做分享衣服网站的初衷是什么意思
  • 超级工程网站建设上海中心大厦帮齐家网做的网站
  • 江苏省建设工程招投标网站知名互联网公司有哪些
  • 做电商宠物带哪个网站最好二级域名网站怎么建设
  • 观澜建网站摄影网站设计报告
  • 流行网站设计wordpress主机教程
  • 怎样做网站让百度能找到阿里巴巴网站网络营销的影响
  • 住房城乡建设部门户网站宁波网站建设联系电话查询
  • 首饰网站建设策划案淘客网站佣金建设
  • 我们的网站重庆任务盟网站建设
  • 用flash做网站wordpress静态文件目录下
  • 大型购物网站crm系统永久免费
  • 乐清网站优化推广类似美团的网站建设