nghttp2 中的常用API

时间:2022-04-29 01:34:06

nghttp2_session_callbacks_new

int nghttp2_session_callbacks_new(nghttp2_session_callbacks*callbacks_ptr)

  • 当初始化多个 nghttp2_session对象, 可以使用初始化的对象,当应用程序使用这个对象完成时,可以使用 nghttp2_session_callbacks_del可以释放它的内存.

nghttp2_session_client_new

int nghttp2_session_client_new(nghttp2_session*session_ptr, const nghttp2_session_callbackscallbacks, void* user_data)

  • 初始化*session_ptr给客户端使用,回调的所有成员被复制到*session_ptr,因此*session_ptr不存储回调,user_data是任意用户提供的数据,将被传递给回调函数.

nghttp2_submit_settings

int nghttp2_submit_settings(nghttp2_sessionsession, uint8_t* flags*, const nghttp2_settings_entryiv, size_t* niv*)

  • 存储本地设置并提交设置的框架
  • flags当前被忽略,应该是 NGHTTP2_FLAG_NONE

nghttp2_submit_request

int32_t nghttp2_submit_request(nghttp2_sessionsession, const nghttp2_priority_specpri_spec, const nghttp2_nvnva, size_t* nvlen*, const nghttp2_data_providerdata_prd, void* stream_user_data)

  • 提交HEADERS帧和可选的一个或多个数据帧

nghttp2_session_callbacks_set_send_callback

void nghttp2_session_callbacks_set_send_callback(nghttp2_session_callbackscbsnghttp2_send_callback* send_callback*)

  • 设置会话想要发送数据到远程时调用的回调函数

nghttp2_session_callbacks_set_recv_callback

void nghttp2_session_callbacks_set_recv_callback(nghttp2_session_callbackscbsnghttp2_recv_callback* recv_callback*)

  • 当会话想要从远程接收数据时调用的回调函数

nghttp2_session_callbacks_set_on_data_chunk_recv_callback

void nghttp2_session_callbacks_set_on_data_chunk_recv_callback(nghttp2_session_callbackscbsnghttp2_on_data_chunk_recv_callback* on_data_chunk_recv_callback*)

  • 设置在接收到数据帧中的大块数据时调用的回调函数

nghttp2_session_callbacks_set_on_header_callback

void nghttp2_session_callbacks_set_on_header_callback(nghttp2_session_callbackscbsnghttp2_on_header_callback* on_header_callback*)

  • 设置收到 header name / value 时调用的回调函数

nghttp2_session_callbacks_set_on_stream_close_callback

void nghttp2_session_callbacks_set_on_stream_close_callback(nghttp2_session_callbackscbsnghttp2_on_stream_close_callback* on_stream_close_callback*)

  • 设置流关闭时调用的回调函数

nghttp2_session_get_stream_user_data

void * nghttp2_session_get_stream_user_data(nghttp2_sessionsession, int32_t* stream_id*)

  • 返回stream_id的流的stream_user_data,stream_user_datanghttp2_submit_request,nghttp2_submit_headers,nghttp2_session_set_stream_user_data提供

nghttp2_submit_rst_stream

int nghttp2_submit_rst_stream(nghttp2_sessionsession, uint8_t* flags*, int32_t* stream_id*, uint32_t* error_code*)

  • 提交RST_STREAM帧以取消/拒绝错误代码为error_code的流stream_id

nghttp2_session_send

int nghttp2_session_send(nghttp2_sessionsession)

  • 将挂起的帧发送到远程peer