我有一个实时的应用程序,可以正常工作与express + passportJS和没有套接字身份验证。 当我添加passport.socketio,我的问题是,插座只会当我重新启动服务器passport.socketio和客户端连接/重新连接只有当重新启动服务器
我已经得到& passport.socketio在服务器和客户端上我已经passportjs连接...有angularjs与btford.socket-io:
angular.module('Socket', ['btford.socket-io'])
.factory('socket',['socketFactory', function(socketFactory){
var myIoSocket = io.connect("http://192.168.0.7:8080");
mySocket = socketFactory({
ioSocket: myIoSocket
});
return mySocket;
}]);
当用户登录时,我做socket.connect();
。 这似乎并没有做服务器端的东西,我没有看到任何日志...
这里的落实,按照教程,passport.socketio的
var io = require('socket.io').listen(app.listen(port));
var passportSocketIo = require("passport.socketio");
io.use(passportSocketIo.authorize({
cookieParser: cookieParser,
secret: 'secret',
store: sessionStore,
success: onAuthorizeSuccess,
fail: onAuthorizeFail,
}));
function onAuthorizeSuccess(data, accept){
log.debug('successful connection to socket.io');
return accept();
}
function onAuthorizeFail(data, message, error, accept){
log.debug('unsuccessful connection to socket.io');
if(error){
throw new Error(message);
}
return accept(new Error(message));
}
的奇怪的是,当我重新启动服务器时,我可以看到很多日志消息,显示我尝试连接的所有套接字实际上都连接。
然后它似乎让用户通过套接字交换,并按预期工作。
任何人都知道可能发生了什么?
谢谢,这似乎工作 – user1144446