diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/Message.java b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/Message.java index e4626bf7721..d78f202584a 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/Message.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/Message.java @@ -90,6 +90,7 @@ public static enum OP { // @param notes serialized List object PARAGRAPH_REMOVE, + PING, ANGULAR_OBJECT_UPDATE, // [s-c] add/update angular object ANGULAR_OBJECT_REMOVE, // [s-c] add angular object del diff --git a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java index 69d62d8e4fe..c8238b438ab 100644 --- a/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java +++ b/zeppelin-server/src/main/java/org/apache/zeppelin/socket/NotebookServer.java @@ -136,6 +136,9 @@ public void onMessage(WebSocket conn, String msg) { case COMPLETION: completion(conn, notebook, messagereceived); break; + case PING: + pong(); + break; case ANGULAR_OBJECT_UPDATED: angularObjectUpdated(conn, notebook, messagereceived); break; @@ -584,6 +587,9 @@ public JobListener getParagraphJobListener(Note note) { return new ParagraphJobListener(this, note); } + private void pong() { + } + private void sendAllAngularObjects(Note note, WebSocket conn) { List settings = note.getNoteReplLoader().getInterpreterSettings(); if (settings == null || settings.size() == 0) { diff --git a/zeppelin-web/app/scripts/controllers/main.js b/zeppelin-web/app/scripts/controllers/main.js index 4948b49659b..2720cbddb4e 100644 --- a/zeppelin-web/app/scripts/controllers/main.js +++ b/zeppelin-web/app/scripts/controllers/main.js @@ -45,6 +45,10 @@ angular.module('zeppelinWebApp') WebSocket.send(JSON.stringify($scope.WebSocketWaitingList[o])); } } + setInterval(function(){ + $rootScope.$emit('sendNewEvent', {op: 'PING'}) + } + ,60000); }); WebSocket.onmessage(function(event) {