diff options
Diffstat (limited to 'app/lib/websockets.hoon')
| -rw-r--r-- | app/lib/websockets.hoon | 29 |
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 -- |
