nghttp2 中的常用API

作者: 程序手艺人 | 来源:发表于2018-01-17 23:00 被阅读248次

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_callbacks callbacks, void* user_data)

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

nghttp2_submit_settings

int nghttp2_submit_settings(nghttp2_session* session, uint8_t* flags, const nghttp2_settings_entry iv, size_t* niv*)

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

nghttp2_submit_request

int32_t nghttp2_submit_request(nghttp2_session* session, const nghttp2_priority_spec* pri_spec, const nghttp2_nv* nva, size_t* nvlen, const nghttp2_data_provider data_prd, void* stream_user_data)

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

nghttp2_session_callbacks_set_send_callback

void nghttp2_session_callbacks_set_send_callback(nghttp2_session_callbacks* cbs, nghttp2_send_callback* send_callback*)

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

nghttp2_session_callbacks_set_recv_callback

void nghttp2_session_callbacks_set_recv_callback(nghttp2_session_callbacks* cbs, nghttp2_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_callbacks* cbs, nghttp2_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_callbacks* cbs, nghttp2_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_callbacks* cbs, nghttp2_on_stream_close_callback* on_stream_close_callback*)

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

nghttp2_session_get_stream_user_data

void * nghttp2_session_get_stream_user_data(nghttp2_session* session, 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_session* session, 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_session* session)

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

相关文章

网友评论

    本文标题:nghttp2 中的常用API

    本文链接:https://www.haomeiwen.com/subject/bikpoxtx.html