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

聊城推广网站能源公司网站模板

聊城推广网站,能源公司网站模板,企业公司有哪些,wordpress 如何改中文1.遇到问题 公司项目是基于ruoyi 框架快速搭建开发,使用多线程搜索查询,所以以用户区分任务,保证可以搜索任务和取消搜索,所以我这需要获得用户id,使用 SecurityUtils 共工工具类从请求头获取token,然后解…

1.遇到问题 

        公司项目是基于ruoyi 框架快速搭建开发,使用多线程搜索查询,所以以用户区分任务,保证可以搜索任务和取消搜索,所以我这需要获得用户id,使用 SecurityUtils 共工工具类从请求头获取token,然后解析得到用户基本信息和权限。在开发的过程中正常使用,建立socket连接也正常,但是在后续发消息的时候,在后续将代码移动websocket 出现获取用户ID 异常的错误,其实在获取 loginUser 是空的。

/*** 安全服务工具类* * @author trinity*/
public class SecurityUtils
{/*** 用户ID**/public static Long getUserId(){try{return getLoginUser().getUserId();}catch (Exception e){throw new ServiceException("获取用户ID异常", HttpStatus.UNAUTHORIZED);}}

  2.解决思路

        1.同事告诉我可以采用另外一种方式,建立连接的时候将让前端传过来,让后将userId和session存放一起,以下代码就可以实现。

@Slf4j
@Component
@ServerEndpoint(value = "/websocket/{userid}")
public class SearchSocketServer {@OnOpenpublic void onOpen(Session session, @PathParam("userid") String userid) {log.info("WebSocket connection opened for userid: {}", userid);// 处理其他逻辑...}
}

        上面是基于注解开发,实现起来的简单。我也问了前端同事是否可以我传用户id,回答也是是。我这人就是最求代码高bi格,就使用下面了这种

        实现 HandshakeInterceptor 接口 就能在 websocket 三次握手 四次挥手 (至于websocket用的什么不清楚),因为socket 建立其实发消息其实就不会发请求了,也就是我在代码中获取不到用户id的问题所在。所以我只要在建立socket 请求时获取用户id 写到请求头里后面就可以无限使用了。不知道还有没有更好的方式

/*** @author LJL* @version 1.0* @title IdHandshakeInterceptor* @date 2023/8/25 9:18* @description TODO*/
public class IdHandshakeInterceptor  implements HandshakeInterceptor {@Overridepublic boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map<String, Object> attributes) throws Exception {// 从外部请求中获取id,并设置到WebSocket的属性中Long uid = SecurityUtils.getUserId();attributes.put("uid", uid);return true;}@Overridepublic void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Exception exception) {// 握手完成后的处理逻辑(可选)}
}

        实现了拦截器别忘记添加进去 

@Configuration
@EnableWebSocket
public class SpringSocketConfig implements WebSocketConfigurer {@Autowiredprivate SpringSocketHandle springSocketHandle;@Autowiredprivate SpringAbstractWebSocketHandler springAbstractWebSocketHandler;@Overridepublic void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {registry.addHandler(springSocketHandle, "/spring-ws").setAllowedOrigins("*").addHandler(springAbstractWebSocketHandler, "/spring-ws1").addInterceptors(new IdHandshakeInterceptor()).setAllowedOrigins("*");}
http://www.yayakq.cn/news/994413/

相关文章:

  • 淘宝的网站怎么做的好有园林案例的网站
  • 网页建站要多久做短视频网站好
  • 织梦云建站系统注册域名平台
  • 小语种外贸网站建设石材公司网站源码
  • 嘉兴优化网站公司哪家好博物馆 网站 建设
  • 网站后台图片编辑器宁波网站推广运营公司
  • wordpress 大学网站WordPress文章登录后可看
  • 大连网站公司链接提交工具的使用方法
  • 安徽工程建设信息网站进皖企业关键词排名优化方案
  • wordpress 魔板阿亮seo技术
  • 关于医院建设网站的请示wordpress配置主题
  • 手机网站建设资讯星子网新闻事件
  • 网站app生成器引流推广公司
  • 手机网站一键分享到微信电影网站推荐哪个网站好
  • 网站建设制作后报告金华专业网站制作
  • 南昌公司网站建设莆田注册公司
  • app下载网站模板郑州网站建设老牌公司
  • 网站图片用什么格式聊城手机网站建设解决方案
  • 网站怎么做下载内容建设美食网站的意义
  • 建商城网站需要多少钱wordpress 集成paypal
  • 网站建设丶金手指下拉11网站建设教程百度网盘
  • 最好的做网站专门做三国战纪的网站叫什么意思
  • jetty网站开发长春市建设工程造价管理协会网站
  • 网站开发需要哪些职位苏州seo安严博客
  • 自己做的网站怎么取sql数据库金泉网是做网站的吗
  • 青县网站建设价格广州市企业网站建设
  • 湘潭网站建设 排名磐石网络网站建设一般报价
  • 广告推广平台网站南京网站设计费用
  • 网站动态背景欣赏网店营销策划书
  • 成为网站建设人员措施上海十大猎头公司排名