WebSocket建立连接传参常用方式

近期在做一个物联网项目,需要实现页面的实时更新,这里考虑到用websocket来实现,对于让项目支持websocket这个在springboot中基于spring-boot-starter-websocket来构建是一件很简单的事情,本文就不赘述了。本文主要就建立websocket时如何传参进行说明

背景

当我们的一个web站点,既有普通的http请求也有websocket通道的时候,需要做到会话一致则需要在开发过程中稍加注意,一般是先登录web站点,然后再建立websocket通道,这个时候会产生用户登录token,在websocket通道里面,需要能知道是对应的用户,一般在建立websocket通道的时候将token传入后端,让后端处理即可。

传参的两种方式

在websocket建立时传参都是通过URL体现的,主要是通过path和?+参数形式;

方式一

socket注释

@ServerEndpoint("/websocket/{param}")

方式二

"ws:localhost:8080/websocket/123?username=zhangsan";

后端获取参数方式

调试验证

在这里插入图片描述

编码获取参数

@OnOpen
public void open(Session session, @PathParam("param")String  param) {
    //通过注解@PathParam获取参数
    System.out.println("注解参数: "+param);
    //通过URL获取
    Map<String, String> map = session.getPathParameters();
    System.out.println("getParameter:token="+map.get("token").toString());
    System.out.println("getParameter:token="+map.get("username").toString());
    String username = session.getQueryString();
    System.out.println("session.getQueryString()="+username);
    String uri = session.getRequestURI().toString();
    System.out.println("session.getRequestURI().toString()="+uri);
}

获取结果

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一起学开源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值