diff --git a/openlp/plugins/remotes/html/js/stage.js b/openlp/plugins/remotes/html/js/stage.js
index df26dbd3f..7430038db 100644
--- a/openlp/plugins/remotes/html/js/stage.js
+++ b/openlp/plugins/remotes/html/js/stage.js
@@ -135,11 +135,11 @@ window.OpenLP = {
$("#nextslide").html(text);
}
},
- updateClock: function(data) {
+ updateClock: function() {
var div = $("#clock");
var t = new Date();
var h = t.getHours();
- if (data.results.twelve && h > 12)
+ if (OpenLP.twelve && h > 12)
h = h - 12;
var m = t.getMinutes();
if (m < 10)
@@ -147,24 +147,32 @@ window.OpenLP = {
div.html(h + ":" + m);
},
pollServer: function () {
- $.getJSON(
- "/api/poll",
- function (data, status) {
- OpenLP.updateClock(data);
- if (OpenLP.currentItem != data.results.item ||
- OpenLP.currentService != data.results.service) {
- OpenLP.currentItem = data.results.item;
- OpenLP.currentService = data.results.service;
- OpenLP.loadSlides();
+ if ("WebSocket" in window) {
+ // Let us open a web socket
+ var ws = new WebSocket("ws://192.168.0.51:4318/poll");
+ ws.binaryType = 'arraybuffer';
+ ws.onmessage = function (evt) {
+ var msg = JSON.parse(String.fromCharCode.apply(null, new Uint8Array(evt.data)));
+ OpenLP.twelve = msg.results.twelve;
+ OpenLP.updateClock();
+ if (OpenLP.currentItem != msg.results.item ||
+ OpenLP.currentService != msg.results.service) {
+ OpenLP.currentItem = msg.results.item;
+ OpenLP.currentService = msg.results.service;
+ OpenLP.loadSlides();
+ }
+ else if (OpenLP.currentSlide != msg.results.slide) {
+ OpenLP.currentSlide = parseInt(mag.results.slide, 10);
+ OpenLP.updateSlide();
+ }
}
- else if (OpenLP.currentSlide != data.results.slide) {
- OpenLP.currentSlide = parseInt(data.results.slide, 10);
- OpenLP.updateSlide();
- }
- }
- );
- }
-}
+ } else {
+ // The browser doesn't support WebSocket
+ alert("WebSocket NOT supported by your Browser!");
+ }
+ },
+};
$.ajaxSetup({ cache: false });
-setInterval("OpenLP.pollServer();", 500);
+setInterval("OpenLP.updateClock();", 1000);
OpenLP.pollServer();
+OpenLP.updateClock();
\ No newline at end of file
diff --git a/openlp/plugins/remotes/lib/httprouter.py b/openlp/plugins/remotes/lib/httprouter.py
index 174dc570a..68804063b 100644
--- a/openlp/plugins/remotes/lib/httprouter.py
+++ b/openlp/plugins/remotes/lib/httprouter.py
@@ -116,7 +116,7 @@ from urllib.parse import urlparse, parse_qs
from mako.template import Template
-from openlp.core.common import RegistryProperties, AppLocation, Settings, translate, UiStrings
+from openlp.core.common import OpenLPMixin, RegistryProperties, AppLocation, Settings, translate, UiStrings
from openlp.core.lib import PluginStatus, StringContent, image_to_byte, ItemCapabilities, create_thumb
log = logging.getLogger(__name__)
@@ -131,7 +131,7 @@ FILE_TYPES = {
}
-class HttpRouter(RegistryProperties):
+class HttpRouter(RegistryProperties, OpenLPMixin):
"""
This code is called by the HttpServer upon a request and it processes it based on the routing table.
This code is stateless and is created on each request.
diff --git a/openlp/plugins/remotes/lib/httpserver.py b/openlp/plugins/remotes/lib/httpserver.py
index 2b0613ae9..6ad145595 100644
--- a/openlp/plugins/remotes/lib/httpserver.py
+++ b/openlp/plugins/remotes/lib/httpserver.py
@@ -197,7 +197,6 @@ class OpenLPServer(RegistryProperties, OpenLPMixin):
:return:
"""
log.debug("web socket handler registered with client")
- print(path)
previous_poll = None
if path == '/poll':
while True:
diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py
index 9b4ce80aa..de8defff7 100644
--- a/openlp/plugins/remotes/remoteplugin.py
+++ b/openlp/plugins/remotes/remoteplugin.py
@@ -34,6 +34,7 @@ __default_settings__ = {
'remotes/twelve hour': True,
'remotes/port': 4316,
'remotes/https port': 4317,
+ 'remotes/websocket port': 4318,
'remotes/https enabled': False,
'remotes/user id': 'openlp',
'remotes/password': 'password',
@@ -60,7 +61,6 @@ class RemotesPlugin(Plugin, OpenLPMixin):
"""
Initialise the remotes plugin, and start the http server
"""
- log.debug('Initialise Remote Plugin')
super(RemotesPlugin, self).initialise()
self.server = OpenLPServer()
self.server_ws = OpenLPServer(websocket=True)
@@ -85,7 +85,6 @@ class RemotesPlugin(Plugin, OpenLPMixin):
"""
Tidy up and close down the http server
"""
- log.debug('finalise')
super(RemotesPlugin, self).finalise()
if self.server:
self.server.stop_server()