summaryrefslogtreecommitdiff
path: root/app/lib/websockets.hoon
diff options
context:
space:
mode:
Diffstat (limited to 'app/lib/websockets.hoon')
-rw-r--r--app/lib/websockets.hoon29
1 files changed, 23 insertions, 6 deletions
diff --git a/app/lib/websockets.hoon b/app/lib/websockets.hoon
index 4d1f952..98ea25b 100644
--- a/app/lib/websockets.hoon
+++ b/app/lib/websockets.hoon
@@ -1,17 +1,34 @@
|%
- ++ give-ws-payload
+ ++ give-ws-payload-client
+ |= [wid=@ msg=websocket-message:eyre]
+ ^- card:agent:gall
+ =/ =cage
+ [%message !>(msg)]
+ =/ wsid (scot %ud wid)
+ [%give %fact ~[/websocket-client/[wsid]] cage]
+
+ ++ give-ws-payload-server
|= [wid=@ event=websocket-event:eyre]
- ^- (list card:agent:gall)
+ ^- card:agent:gall
=/ =cage
[%websocket-response !>([wid event])]
=/ wsid (scot %ud wid)
- :~ [%give %fact ~[/websocket-server/[wsid]] cage]
- ==
+ [%give %fact ~[/websocket-server/[wsid]] cage]
+
++ accept-handshake |= wid=@
=/ response [%accept ~]
- (give-ws-payload wid response)
+ :~
+ (give-ws-payload-server wid response)
+ ==
++ refuse-handshake |= wid=@
=/ response [%reject ~]
- (give-ws-payload wid response)
+ :~
+ (give-ws-payload-server wid response)
+ ==
+ ++ check-connected
+ |= [url=@t =bowl:gall] ^- (unit websocket-connection:iris)
+ =/ scry-path=path /(scot %p our.bowl)/ws/(scot %da now.bowl)/url/[url]
+ =/ conn .^((unit websocket-connection:iris) %ix scry-path)
+ conn
--