diff --git a/src/snek/service/socket.py b/src/snek/service/socket.py index eb4695c..55909ce 100644 --- a/src/snek/service/socket.py +++ b/src/snek/service/socket.py @@ -23,7 +23,11 @@ class SocketService(BaseService): print("BROADCAT!",message) count = 0 for ws in self.subscriptions.get(channel_uid,[]): - await ws.send_json(message) + try: + await ws.send_json(message) + except Exception as ex: + print(ex) + continue count += 1 return count async def delete(self, ws): diff --git a/src/snek/static/app.js b/src/snek/static/app.js index f6490e8..1e98ec5 100644 --- a/src/snek/static/app.js +++ b/src/snek/static/app.js @@ -212,7 +212,7 @@ class Socket extends EventHandler { connectPromises = [] constructor() { super() - this.url = window.location.hostname == 'localhost' ? 'ws://localhost/rpc.ws' : 'wss://' + window.location.hostname +'/rpc.ws' + this.url = window.location.hostname == 'localhost' ? 'ws://localhost:8081/rpc.ws' : 'wss://' + window.location.hostname +'/rpc.ws' this.ensureConnection() } _camelToSnake(str) { diff --git a/src/snek/system/mapper.py b/src/snek/system/mapper.py index 66946d8..9722534 100644 --- a/src/snek/system/mapper.py +++ b/src/snek/system/mapper.py @@ -59,6 +59,10 @@ class BaseMapper: model[key] = value yield model + async def query(self, sql, *args): + for record in self.db.query(sql, *args): + yield dict(record) + async def delete(self, kwargs=None) -> int: if not kwargs or not isinstance(kwargs, dict): raise Exception("Can't execute delete with no filter.") diff --git a/src/snek/system/service.py b/src/snek/system/service.py index 60d27bb..51e4b9f 100644 --- a/src/snek/system/service.py +++ b/src/snek/system/service.py @@ -32,6 +32,10 @@ class BaseService: async def new(self, **kwargs): return await self.mapper.new() + async def query(self, sql, *args): + for record in self.app.db.query(sql, *args): + yield record + async def get(self, uid=None, **kwargs): if uid: if not kwargs: diff --git a/src/snek/templates/web.html b/src/snek/templates/web.html index d56b4f2..f6635d3 100644 --- a/src/snek/templates/web.html +++ b/src/snek/templates/web.html @@ -8,6 +8,7 @@ +
@@ -30,12 +31,10 @@