diff --git a/agkyra/agkyra/protocol.py b/agkyra/agkyra/protocol.py
index bb0a49b66392796bd93f31efb3fa8468dbb87a57..c9a51088c47567e9e4a4c33412406c238fce9d7b 100644
--- a/agkyra/agkyra/protocol.py
+++ b/agkyra/agkyra/protocol.py
@@ -25,7 +25,7 @@ import os
 import json
 import logging
 from agkyra.syncer import (
-    syncer, setup, pithos_client, localfs_client, messaging)
+    syncer, setup, pithos_client, localfs_client, messaging, utils)
 from agkyra.config import AgkyraConfig, AGKYRA_DIR
 
 
@@ -49,6 +49,8 @@ class SessionHelper(object):
         self._init_db_relation()
         self.session = self._load_active_session() or self._create_session()
 
+        self.db.close()
+
     def _init_db_relation(self):
         self.db.execute('BEGIN')
         self.db.execute(
@@ -74,6 +76,8 @@ class SessionHelper(object):
         ui_id = sha1(os.urandom(128)).hexdigest()
 
         WebSocketProtocol.ui_id = ui_id
+        WebSocketProtocol.session_db = self.session_db
+        WebSocketProtocol.session_relation = self.session_relation
         server = make_server(
             '', 0,
             server_class=WSGIServer,
@@ -158,6 +162,7 @@ class WebSocketProtocol(WebSocket):
     """
 
     ui_id = None
+    db, session_db, session_relation = None, None, None
     accepted = False
     settings = dict(
         token=None, url=None,
@@ -169,6 +174,15 @@ class WebSocketProtocol(WebSocket):
     cnf = AgkyraConfig()
     essentials = ('url', 'token', 'container', 'directory')
 
+    def heartbeat(self):
+        if not self.db:
+            self.db = sqlite3.connect(self.session_db)
+        self.db.execute('BEGIN')
+        self.db.execute('UPDATE %s SET beat="%s" WHERE ui_id="%s"' % (
+            self.session_relation, time.time(), self.ui_id))
+        self.db.commit()
+        time.sleep(2)
+
     def _get_default_sync(self):
         """Get global.default_sync or pick the first sync as default
         If there are no syncs, create a 'default' sync.
@@ -341,8 +355,21 @@ class WebSocketProtocol(WebSocket):
     # WebSocket connection methods
     def opened(self):
         LOG.debug('Helper: connection established')
+        self.heart = utils.StoppableThread()
+        self.heart.run_body = self.heartbeat
+        self.heart.start()
 
     def closed(self, *args):
+        """Stop server heart, empty DB and exit"""
+        LOG.debug('Stop protocol heart')
+        self.heart.stop()
+        LOG.debug('Remove session traces')
+        self.db = sqlite3.connect(self.session_db)
+        self.db.execute('BEGIN')
+        self.db.execute('DELETE FROM %s' % self.session_relation)
+        self.db.commit()
+        LOG.debug('Close DB connection')
+        self.db.close()
         LOG.debug('Helper: connection closed')
 
     def send_json(self, msg):