近期在做一个物联网项目,需要实现页面的实时更新,这里考虑到用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";
后端获取参数方式
调试验证
文章来源:https://www.toymoban.com/news/detail-549635.html
编码获取参数
@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);
}
获取结果
文章来源地址https://www.toymoban.com/news/detail-549635.html
到了这里,关于WebSocket建立连接传参常用方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!