mirror of
https://github.com/Rafostar/clapper.git
synced 2025-08-30 07:42:23 +02:00
Move WebSocket message parsing to another file
Allows reusing the same code for the client app
This commit is contained in:
30
clapper_src/webHelpers.js
Normal file
30
clapper_src/webHelpers.js
Normal file
@@ -0,0 +1,30 @@
|
||||
const { Soup } = imports.gi;
|
||||
const ByteArray = imports.byteArray;
|
||||
const Debug = imports.clapper_src.debug;
|
||||
|
||||
let { debug } = Debug;
|
||||
|
||||
function parseData(dataType, bytes)
|
||||
{
|
||||
if(dataType !== Soup.WebsocketDataType.TEXT) {
|
||||
debug('ignoring non-text WebSocket message');
|
||||
return [false];
|
||||
}
|
||||
|
||||
let parsedMsg = null;
|
||||
const msg = bytes.get_data();
|
||||
|
||||
try {
|
||||
parsedMsg = JSON.parse(ByteArray.toString(msg));
|
||||
}
|
||||
catch(err) {
|
||||
debug(err);
|
||||
}
|
||||
|
||||
if(!parsedMsg || !parsedMsg.action) {
|
||||
debug('no "action" in parsed WebSocket message');
|
||||
return [false];
|
||||
}
|
||||
|
||||
return [true, parsedMsg];
|
||||
}
|
@@ -1,6 +1,6 @@
|
||||
const { Soup, GObject } = imports.gi;
|
||||
const ByteArray = imports.byteArray;
|
||||
const Debug = imports.clapper_src.debug;
|
||||
const WebHelpers = imports.clapper_src.webHelpers;
|
||||
|
||||
let { debug } = Debug;
|
||||
|
||||
@@ -118,23 +118,10 @@ class ClapperWebServer extends Soup.Server
|
||||
|
||||
_onWsMessage(connection, dataType, bytes)
|
||||
{
|
||||
if(dataType !== Soup.WebsocketDataType.TEXT)
|
||||
return debug('ignoring non-text WebSocket message');
|
||||
const [success, parsedMsg] = WebHelpers.parseData(dataType, bytes);
|
||||
|
||||
const msg = bytes.get_data();
|
||||
let parsedMsg = null;
|
||||
|
||||
try {
|
||||
parsedMsg = JSON.parse(ByteArray.toString(msg));
|
||||
}
|
||||
catch(err) {
|
||||
debug(err);
|
||||
}
|
||||
|
||||
if(!parsedMsg || !parsedMsg.action)
|
||||
return debug('no "action" in parsed WebSocket message');
|
||||
|
||||
this.passMsgData(parsedMsg.action, parsedMsg.value || 0);
|
||||
if(success)
|
||||
this.passMsgData(parsedMsg.action, parsedMsg.value);
|
||||
}
|
||||
|
||||
_onWsClosed(connection)
|
||||
|
Reference in New Issue
Block a user