我正在使用socket.io和laravel 5.6。
这是服务器端代码:
io.use(function(socket,next){
let session = cookie.parse(socket.request.headers.cookie).laravel_session;
laravelSession.getAppKey('./.env')
.then((appKey) => {
// continue
let sessionKey = laravelSession.getSessionKey(session,appKey);
laravelSession.getSessionFromFile(sessionKey,'./storage/framework/sessions')
.then((session)=>{
socket.userId = getUserIdFromSession(session);
return next();
}).catch(err=>{
return next(new Error('Authentication error'));
});
});
});
我发现,如果return next(new Error())
不能从服务器获取消息。
对吗? 还是我可以拒绝在socket.io上的连接端的连接?