nghttp2 中的常用API

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序手艺人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值