YUKI Hiroshi
null+****@clear*****
Wed Jan 30 12:50:15 JST 2013
YUKI Hiroshi 2013-01-30 12:50:15 +0900 (Wed, 30 Jan 2013) New Revision: 9c6077d447469dc59711eb85b9a11740686a0370 https://github.com/groonga/express-kotoumi/commit/9c6077d447469dc59711eb85b9a11740686a0370 Log: Handle errors from the connection and report it via the socket.io API Modified files: lib/frontend/socket.io-handler.js Modified: lib/frontend/socket.io-handler.js (+10 -0) =================================================================== --- lib/frontend/socket.io-handler.js 2013-01-30 12:49:18 +0900 (de3cab4) +++ lib/frontend/socket.io-handler.js 2013-01-30 12:50:15 +0900 (ebe95e2) @@ -52,6 +52,12 @@ exports.register = function(application, server, params) { }); } + function createErrorHandler(socket) { + return (function(error) { + socket.emit('error', error); + }); + } + var io = socketIo.listen(server); io.sockets.on('connection', function(socket) { var messageHandlers = []; @@ -63,10 +69,14 @@ exports.register = function(application, server, params) { connection.on('message', handler); }); + var errorHandler = createErrorHandler(socket); + connection.on('error', errorHandler); + socket.on('disconnect', function() { messageHandlers.forEach(function(handler) { connection.removeListener('message', handler); }); + connection.removeListener('error', errorHandler); socket.removeAllListeners(); }); }); -------------- next part -------------- HTML����������������������������... Download