aboutsummaryrefslogtreecommitdiffstats
path: root/src/gun_event.erl
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2019-07-15 16:18:16 +0200
committerLoïc Hoguin <[email protected]>2019-07-15 16:18:16 +0200
commit265ece680c53f77d1685434d0636216c94021497 (patch)
treec50428fe30c4af079f568a76dd5e091f2a2fe395 /src/gun_event.erl
parentc7138443995ebd56f061b85e5ee0aebb5c04a00e (diff)
downloadgun-265ece680c53f77d1685434d0636216c94021497.tar.gz
gun-265ece680c53f77d1685434d0636216c94021497.tar.bz2
gun-265ece680c53f77d1685434d0636216c94021497.zip
Add Websocket frames related events
Diffstat (limited to 'src/gun_event.erl')
-rw-r--r--src/gun_event.erl55
1 files changed, 50 insertions, 5 deletions
diff --git a/src/gun_event.erl b/src/gun_event.erl
index 9e83cf8..5332568 100644
--- a/src/gun_event.erl
+++ b/src/gun_event.erl
@@ -140,6 +140,56 @@
-callback protocol_changed(protocol_changed_event(), State) -> State.
+%% ws_recv_frame_start.
+
+-type ws_recv_frame_start_event() :: #{
+ stream_ref := reference(),
+ reply_to := pid(),
+ frag_state := cow_ws:frag_state(),
+ extensions := cow_ws:extensions()
+}.
+
+-callback ws_recv_frame_start(ws_recv_frame_start_event(), State) -> State.
+
+%% ws_recv_frame_header.
+
+-type ws_recv_frame_header_event() :: #{
+ stream_ref := reference(),
+ reply_to := pid(),
+ frag_state := cow_ws:frag_state(),
+ extensions := cow_ws:extensions(),
+ type := cow_ws:frame_type(),
+ rsv := cow_ws:rsv(),
+ len := non_neg_integer(),
+ mask_key := cow_ws:mask_key()
+}.
+
+-callback ws_recv_frame_header(ws_recv_frame_header_event(), State) -> State.
+
+%% ws_recv_frame_end.
+
+-type ws_recv_frame_end_event() :: #{
+ stream_ref := reference(),
+ reply_to := pid(),
+ extensions := cow_ws:extensions(),
+ close_code := undefined | cow_ws:close_code(),
+ payload := binary()
+}.
+
+-callback ws_recv_frame_end(ws_recv_frame_end_event(), State) -> State.
+
+%% ws_send_frame_start/ws_send_frame_end.
+
+-type ws_send_frame_event() :: #{
+ stream_ref := reference(),
+ reply_to := pid(),
+ extensions := cow_ws:extensions(),
+ frame := gun:ws_frame()
+}.
+
+-callback ws_send_frame_start(ws_send_frame_event(), State) -> State.
+-callback ws_send_frame_end(ws_send_frame_event(), State) -> State.
+
%% disconnect.
-type disconnect_event() :: #{
@@ -167,8 +217,3 @@
%% @todo push_promise_end
%% @todo cancel_start
%% @todo cancel_end
-%% @todo ws_frame_read_start
-%% @todo ws_frame_read_header
-%% @todo ws_frame_read_end
-%% @todo ws_frame_write_start
-%% @todo ws_frame_write_end