0
我使用插座IO用一個簡單的令牌AUTH方法(服務器端):Socket.io失敗授權不重試重新連接
io.use(function(socket, next){
var handshake = socket.request;
if(token == handshake._query.token)
{
console.log('Client authorized');
next();
}
else
{
console.log('Client not authorized');
next(new Error('not_authorized'));
socket.disconnect();
}
});
問題是,如果客戶端第一次授權失敗(錯誤的令牌),它不會再次嘗試連接,即使我發送手動新連接,它也不會重新連接,直到整個頁面刷新。 Cliend方:
var socket = io.connect(this.adress, {query: 'token=123456789', transports:['websocket', 'polling'] });
socket.on('error', function(err){
console.log(err);
if(err == 'not_authorized')
{
console.log('gettin toke');//NOT ENTERING HERE
}
PS.connected = false;
});
我如何可以重試與其他參數重新連接?
解決辦法,設置這個變量againg重試連接:
PS.socket.socket.connecting = false;
PS.socket.socket.options.query = 'token='+tok;
即使去除沒有解決的問題。看起來,當授權失敗時,連接不能再重試。 – albanx
我找到了解決方案。看看我的編輯 – Curious
我測試過,它不起作用,我發現0.9版的解決方法。在編輯中 – albanx