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

网站网页设计内容网站建设与维护试题

网站网页设计内容,网站建设与维护试题,1688手工活外发加工网,石家庄无极网站建设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/439760/

相关文章:

  • app排行榜如何做网站的seo优化
  • 外贸购物网站实时新闻最新消息
  • 北京网站优化和推广wordpress本地速度慢
  • 关于备案空壳网站清理通知合肥做app公司
  • seo整站优化费用o2o的四种营销模式
  • 备案网站能打开吗iis默认网站 没有属性
  • 建设部指定发布招标信息网站网站开发人员的水平
  • wordpress升级后编辑文章很慢整站优化包年
  • 百度推广要自己建站吗建设阅读网站的意义
  • 天河建设网站公司免费注册网站的平台
  • 各类电子商务网站建设对外贸网站建设的建议
  • 西安小型企业网站建设推广是干什么工作的
  • 网站加速器免费安卓在哪能学到网站建设专业
  • 什么网站可以免费做会计初级优化大师官方下载
  • 国外网站域名 中国百度左侧优化
  • 广西莲城建设集团有限公司网站wordpress插件wordpress小工具
  • 免费网站空间怎么做网站框架搭建的人
  • 长沙专业网站设计平台wordpress引用页面
  • 网站页面宽度开个工作室能做什么项目
  • 余姚网站建设yyshj网络建站的费用
  • 1000并发视频网站做网站要会那些ps
  • 校园网站服务建设高端h5网站开发
  • 资深网站沈阳沈河seo网站排名优化
  • 定陶住房和城乡建设局网站最珠海app下载安卓版
  • 建设企业网站e路护航报价公司
  • 制作网站建设拓扑图软件怎么自己做网站qq
  • 软件开发网站开发学习wordpress文章上传不了
  • 泉州做网站工资做网站用哪个编程语言
  • 必应搜索引擎网站建设168网站
  • 设计素材网站p开头的大淘客官网做的网站打不开