websocket建立连接时能传递参数吗
4个回答
展开全部
可以传参,以java为例
html中:
var websocket = new WebSocket("ws://ws.xxxx.con/what/webSocketServer?sid=" + sid)
java中自定义 WebSocketHandshakeInterceptor, 在 beforeHandshake 方法中使用
String sid = ((ServletServerHttpRequest) req).getServletRequest().getParameter("sid");
即可拿到 sid 的值,可以添加到 attributes 中使用
在 WebSocketHandler 的方法中,通过
session.getAttributes().get('sid')
可以拿到建立时传递的参数
展开全部
您可以这样!
在js传参的时候参数就和其他地址一样传就行 比如
var wsUrl = 'ws://localhost:8080/ScadaWebSocket/ScadaSocket/我的参数'
webSocket=new WebSocket(wsUrl);
后台的类上面的注解这样写
@ServerEndpoint(value = "/ScadaSocket/{param}")
注意上面的花括号了吗? 那个其实就是你传过来的参数
里面的四个方法如果想要参数直接在方法里加参数就行 但是得有一个注解 而且注解里面的字符串得和上面的参数名一样
public void onOpen(@PathParam(value="param") String param,Session session, EndpointConfig config) {
System.out.println("我的参数是:"+param);
}
这是路径参数,也就是前端将参数当做路径传了过来,后台直接取的,有一个缺点就是比较特殊的字符无法传过来 比如{} 和[]等 如果你的参数真的很特殊解决方法是: 前端将参数加密或者转换为二进制传过来 后台再转回来就行了! 这是我研究半天的结果!
onMessage和onClose等等都可以加参数的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-04-12 · 知道合伙人互联网行家
关注
展开全部
function showNews(n) {
var form = document.getElementById("news");
form.action = "showDetail!getMenuNames.action?DetailID=" + n;
form.submit();
}
<form id="news" method="post">
<input type="button" value="提交" onclick="showNews(n)">
</form>
带参数调整
或直接
<a href="showDetail!getMenuNames.action?参数名=参数值">
var form = document.getElementById("news");
form.action = "showDetail!getMenuNames.action?DetailID=" + n;
form.submit();
}
<form id="news" method="post">
<input type="button" value="提交" onclick="showNews(n)">
</form>
带参数调整
或直接
<a href="showDetail!getMenuNames.action?参数名=参数值">
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
function showNews(n) {
var form = document.getElementById("news");
form.action = "showDetail!getMenuNames.action?DetailID=" + n;
form.submit();
}
<form id="news" method="post">
<input type="button" value="提交" onclick="showNews(n)">
</form>
带参数调整
或直接
<a href="showDetail!getMenuNames.action?参数名=参数值">
var form = document.getElementById("news");
form.action = "showDetail!getMenuNames.action?DetailID=" + n;
form.submit();
}
<form id="news" method="post">
<input type="button" value="提交" onclick="showNews(n)">
</form>
带参数调整
或直接
<a href="showDetail!getMenuNames.action?参数名=参数值">
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询