From 64e87b761f98d28a020a2b5832a855aa18f14a3a Mon Sep 17 00:00:00 2001
From: Julian Lam <julian.lam@gmail.com>
Date: Wed, 11 Dec 2013 16:10:08 -0500
Subject: [PATCH] closed #652

---
 public/src/app.js |  2 ++
 src/user.js       |  1 -
 src/websockets.js | 15 +++++++++++++++
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/public/src/app.js b/public/src/app.js
index 854957b7aa..837403d906 100644
--- a/public/src/app.js
+++ b/public/src/app.js
@@ -77,6 +77,8 @@ var socket,
 							}
 							app.enterRoom(room, true);
 
+							socket.emit('reconnected');
+
 							setTimeout(function() {
 								reconnectEl.removeClass('active');
 							}, 3000);
diff --git a/src/user.js b/src/user.js
index 7291971eb3..bfd8f47826 100644
--- a/src/user.js
+++ b/src/user.js
@@ -867,7 +867,6 @@ var bcrypt = require('bcrypt'),
 
 	User.pushNotifCount = function(uid) {
 		User.notifications.getUnreadCount(uid, function(err, count) {
-			console.log('unread count is', count);
 			if (!err) {
 				websockets.in('uid_' + uid).emit('event:notifications.updateCount', count);
 			} else {
diff --git a/src/websockets.js b/src/websockets.js
index 338b054cfd..892b111c81 100644
--- a/src/websockets.js
+++ b/src/websockets.js
@@ -135,6 +135,21 @@ websockets.init = function(io) {
 			}
 		});
 
+		socket.on('reconnected', function() {
+			if (uid) {
+				topics.pushUnreadCount(uid);
+				user.pushNotifCount(uid);
+			}
+
+			if (process.env.NODE_ENV === 'development') {
+				if (uid) {
+					winston.info('[socket] uid ' + uid + ' (' + sessionID + ') has successfully reconnected.');
+				} else {
+					winston.info('[socket] An anonymous user (' + sessionID + ') has successfully reconnected.');
+				}
+			}
+		});
+
 		socket.on('api:get_all_rooms', function(data) {
 			socket.emit('api:get_all_rooms', io.sockets.manager.rooms);
 		});