From 806c8d69685aa85d7a907ae3dbe5410d3b5fc168 Mon Sep 17 00:00:00 2001 From: ori agranat Date: Sat, 30 Nov 2019 10:39:53 -0800 Subject: [PATCH] web socket speed improvement and input values bugfix --- .../main/java/com/chameleonvision/web/SocketHandler.java | 4 ++++ chameleon-client/src/App.vue | 7 ++++--- chameleon-client/src/main.js | 7 ++++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Main/src/main/java/com/chameleonvision/web/SocketHandler.java b/Main/src/main/java/com/chameleonvision/web/SocketHandler.java index ec0f63799..84d6de42d 100644 --- a/Main/src/main/java/com/chameleonvision/web/SocketHandler.java +++ b/Main/src/main/java/com/chameleonvision/web/SocketHandler.java @@ -145,16 +145,20 @@ public class SocketHandler { switch (entry.getKey()) { case "exposure": { currentCamera.setExposure((Integer) entry.getValue()); + break; } case "brightness": { currentCamera.setBrightness((Integer) entry.getValue()); + break; } case "videoMode":{ currentCamera.setVideoMode((Integer) entry.getValue()); + break; } case "streamDivisor":{ VisionProcess currentVisionProcess = VisionManager.getCurrentUIVisionProcess(); currentVisionProcess.cameraStreamer.setDivisor(StreamDivisor.values()[(Integer) entry.getValue()], true); + break; } } diff --git a/chameleon-client/src/App.vue b/chameleon-client/src/App.vue index fb105fc0a..899b1f6a8 100644 --- a/chameleon-client/src/App.vue +++ b/chameleon-client/src/App.vue @@ -64,10 +64,11 @@ timer: undefined }), created() { - this.$options.sockets.onmessage = async (data) => { + this.$options.sockets.onmessage = (data) => { try { - var buffer = await data.data.arrayBuffer(); - let message = this.$msgPack.decode(buffer); + + let message = this.$msgPack.decode(data.data); + for (let prop in message) { if (message.hasOwnProperty(prop)) { this.handleMessage(prop, message[prop]); diff --git a/chameleon-client/src/main.js b/chameleon-client/src/main.js index 4eac4e078..a1aae3328 100644 --- a/chameleon-client/src/main.js +++ b/chameleon-client/src/main.js @@ -16,8 +16,13 @@ if (process.env.NODE_ENV === "production"){ Vue.prototype.$address = location.hostname + ":5800"; } +const url = 'ws://' + Vue.prototype.$address + '/websocket'; +var ws = new WebSocket(url); +ws.binaryType = "arraybuffer"; -Vue.use(VueNativeSock, 'ws://' + Vue.prototype.$address + '/websocket'); +Vue.use(VueNativeSock, url,{ + WebSocket: ws +}); Vue.use(VueAxios, axios); Vue.prototype.$msgPack = msgPack(true);