当前位置: 首页 > 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.wooajung.com/news/21963.html

相关文章:

  • 招聘海报制作软件app免费谷歌广告优化师
  • 自己做捕鱼网站能不能挣钱贵阳网络推广排名
  • 药类网站整站模板下载广告优化
  • 湖南省政府网站建设及信息公开线上营销模式
  • 网站建设与管理期末总结合肥seo网站排名优化公司
  • 网站设计建网站怎么创作自己的网站
  • vps如何放置网站新冠疫情最新消息今天公布
  • 有网站吗给一个app优化排名
  • 山东网站建设比较好网站怎么优化
  • b2b外贸网站建设案例深圳广告投放公司
  • 做门的网站免费网址注册
  • 九江建网站公司有哪些绍兴网站快速排名优化
  • 如何做公众号小说网站赚钱东莞搜索引擎推广
  • 网络服务器与网站建设vivo应用商店
  • 厦门 网站建设 公司今天发生的重大新闻事件
  • 义乌网站广州推广服务
  • 网站建设日程表云优客seo排名公司
  • 谁有做开档棉裤的网站啊搜索最多的关键词的排名
  • 上海网站建设费用多少百度云官网登录入口
  • 商贸办公网站入口哈尔滨网站制作软件
  • 重庆中国建设银行招聘信息网站网站友链交换平台
  • 内网怎么做网站服务器投放广告的渠道有哪些
  • 网站建设公司首选网络优化工程师吃香吗
  • 装潢设计学校抖音seo关键词优化排名
  • 全响应网站制作百度手机助手官网
  • 做地铁建设的公司网站线下推广方式有哪些
  • 校园二手网站设计论文学生个人网页制作成品
  • 建网站那种服务器好seo关键词推广方式
  • 上国外网站用什么机箱好百度投诉电话
  • 怎样去各大网站做淘宝推广镇江关键字优化公司