I Beispiel für die Verwendung socket.IO 1. * Breite Express 4. Hier ist eine linkSocketIo.use (Funktion (Socket, next)) - Wohin geht die nächste, wie man es fängt oder erhält?
Every funktioniert perfekt gefunden. Aber es gibt einen Code:
io.use(function(socket, next) {
try {
var data = socket.handshake || socket.request;
if (! data.headers.cookie) {
return next(new Error('Missing cookie headers'));
}
console.log('cookie header (%s)', JSON.stringify(data.headers.cookie));
var cookies = cookie.parse(data.headers.cookie);
console.log('cookies parsed (%s)', JSON.stringify(cookies));
if (! cookies[COOKIE_NAME]) {
return next(new Error('Missing cookie ' + COOKIE_NAME));
}
var sid = cookieParser.signedCookie(cookies[COOKIE_NAME], COOKIE_SECRET);
if (! sid) {
return next(new Error('Cookie signature is not valid'));
}
console.log('session ID (%s)', sid);
data.sid = sid;
sessionStore.get(sid, function(err, session) {
if (err) return next(err);
if (! session) return next(new Error('session not found'));
data.session = session;
next();
});
} catch (err) {
console.error(err.stack);
next(new Error('Internal server error'));
}
});
Also, wenn es ein Fehler ist, es geht auf next
. Aber wohin geht das als nächstes? Wie man diesen Fehler behandelt, ohne zu versuchen, zu fangen. Ich meine Handle, wo diese nächste wie in Express empfängt:
// something here
// And this is callback function which accepts next with err
functin(err, anythingHere){
if err
throw err;
else
// some code here
}
Danke Sir, Sie geholfen – onar