blob: 98ea25bde025433ffb109225cb3c2625c30635b4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
|%
++ 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]
^- card:agent:gall
=/ =cage
[%websocket-response !>([wid event])]
=/ wsid (scot %ud wid)
[%give %fact ~[/websocket-server/[wsid]] cage]
++ accept-handshake |= wid=@
=/ response [%accept ~]
:~
(give-ws-payload-server wid response)
==
++ refuse-handshake |= wid=@
=/ response [%reject ~]
:~
(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
--
|