diff options
author | Loïc Hoguin <[email protected]> | 2019-07-15 16:18:16 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2019-07-15 16:18:16 +0200 |
commit | 265ece680c53f77d1685434d0636216c94021497 (patch) | |
tree | c50428fe30c4af079f568a76dd5e091f2a2fe395 /src/gun_event.erl | |
parent | c7138443995ebd56f061b85e5ee0aebb5c04a00e (diff) | |
download | gun-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.erl | 55 |
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 |