套接字打开后Atmosphere JS不断发送get请求
Atmosphere JS keeps sending get request after socket open
我在 Atmosphere JS 中使用长轮询来实现会话超时,因此服务器会在用户注销时告诉我。
问题是,一旦订阅,Atmosphere JS 就会每 60 秒发送一次获取请求,这会重新启动用户会话并且永远不会注销。
我已阅读文档并四处搜索,但找不到任何方法来阻止这种情况的发生。这是我的代码:
var socket = atmosphere;
var subSocket;
// subscribe
function subscribe() {
var request = {
url : "/web-service/notifier",
transport: 'long-polling'
};
request.onMessage = function (response) {
var jsonStringArray = response.responseBody.split('|');
// go through each notification and convert from string to object
$.each(jsonStringArray, function(index, elem){
if (elem != ""){
var parsedObject = JSON.parse(elem);
// if notification states user is logged out, log them out
if (parsedObject.action === 'LOGGED_OUT'){
// DO LOGOUT STUFF
}
}
});
};
subSocket = socket.subscribe(request);
}
感谢您的帮助。
这就是长轮询的工作原理,例如,连接将在 60 秒后由服务器closed/resumed(您已在服务器端设置该值...检查您的代码)
-- 让弗朗索瓦
我在 Atmosphere JS 中使用长轮询来实现会话超时,因此服务器会在用户注销时告诉我。
问题是,一旦订阅,Atmosphere JS 就会每 60 秒发送一次获取请求,这会重新启动用户会话并且永远不会注销。
我已阅读文档并四处搜索,但找不到任何方法来阻止这种情况的发生。这是我的代码:
var socket = atmosphere;
var subSocket;
// subscribe
function subscribe() {
var request = {
url : "/web-service/notifier",
transport: 'long-polling'
};
request.onMessage = function (response) {
var jsonStringArray = response.responseBody.split('|');
// go through each notification and convert from string to object
$.each(jsonStringArray, function(index, elem){
if (elem != ""){
var parsedObject = JSON.parse(elem);
// if notification states user is logged out, log them out
if (parsedObject.action === 'LOGGED_OUT'){
// DO LOGOUT STUFF
}
}
});
};
subSocket = socket.subscribe(request);
}
感谢您的帮助。
这就是长轮询的工作原理,例如,连接将在 60 秒后由服务器closed/resumed(您已在服务器端设置该值...检查您的代码)
-- 让弗朗索瓦