如何在客户端获取会话ID? (网络套接字)
How to get session id on the client side? (WebSocket)
有什么办法吗?
客户端:
function connectWebSocket() {
var socket = new SockJS('/socket');
stompClient = Stomp.over(socket);
stompClient.connect({}, function (frame) {
console.log("connected");
});
}
服务器端不重要。执行完上面的代码后,我需要知道我的会话 ID。
要获取会话 ID,我们需要对 SockJS 库进行一些更改。
字符串
var connid = utils.random_string(8);
用于获取我们的id。所以,我们只需要这样完成它:
var connid = utils.random_string(8);
that.sessionId = connid;
然后我们可以从客户端代码读取这个字段:
function connectWebSocket() {
var socket = new SockJS('/socket');
stompClient = Stomp.over(socket);
stompClient.connect({}, function (frame) {
console.log("connected, session id: " + socket.sessionId);
});
}
如果我们需要在调用连接方法之前知道会话 ID,我们可以修改 SockJS 的构造函数和连接方法以使用客户端传递的值。
您可以从 url 获取它,而无需对 SockJS 库进行任何更改。
var socket = new SockJS('/mqClient');
stompClient = Stomp.over(socket);
stompClient.connect({}, function(frame) {
console.log(socket._transport.url);
//it contains ws://localhost:8080/mqClient/039/byxby3jv/websocket
//sessionId is byxby3jv
});
SockJS 构造函数有一个选项参数,您可以在其中将自定义会话 ID 生成器作为函数传递:
let sessionId = utils.random_string(8);
let socket = new SockJS('/socket', [], {
sessionId: () => {
return sessionId
}
});
有什么办法吗?
客户端:
function connectWebSocket() {
var socket = new SockJS('/socket');
stompClient = Stomp.over(socket);
stompClient.connect({}, function (frame) {
console.log("connected");
});
}
服务器端不重要。执行完上面的代码后,我需要知道我的会话 ID。
要获取会话 ID,我们需要对 SockJS 库进行一些更改。
字符串
var connid = utils.random_string(8);
用于获取我们的id。所以,我们只需要这样完成它:
var connid = utils.random_string(8);
that.sessionId = connid;
然后我们可以从客户端代码读取这个字段:
function connectWebSocket() {
var socket = new SockJS('/socket');
stompClient = Stomp.over(socket);
stompClient.connect({}, function (frame) {
console.log("connected, session id: " + socket.sessionId);
});
}
如果我们需要在调用连接方法之前知道会话 ID,我们可以修改 SockJS 的构造函数和连接方法以使用客户端传递的值。
您可以从 url 获取它,而无需对 SockJS 库进行任何更改。
var socket = new SockJS('/mqClient');
stompClient = Stomp.over(socket);
stompClient.connect({}, function(frame) {
console.log(socket._transport.url);
//it contains ws://localhost:8080/mqClient/039/byxby3jv/websocket
//sessionId is byxby3jv
});
SockJS 构造函数有一个选项参数,您可以在其中将自定义会话 ID 生成器作为函数传递:
let sessionId = utils.random_string(8);
let socket = new SockJS('/socket', [], {
sessionId: () => {
return sessionId
}
});