显示crate…
2个不稳定版本
0.10.0 | 2021年3月12日 |
---|---|
0.9.0 | 2021年3月15日 |
0.0.0 |
|
#10 在 #tetsy-libp2p
24 每月下载
用于 2 crates
745KB
13K SLoC
request-response
通用请求/响应协议。
通用用法
RequestResponse
是一个 NetworkBehaviour
,实现了通用请求/响应协议或协议族,其中每个请求都在连接上的新子流中发送。 RequestResponse
对发送的实际消息是泛型的,这些消息以 RequestResponseCodec
的形式定义。创建请求/响应协议相当于提供一个此特质的实现,然后可以将其提供给 RequestResponse::new
。进一步配置选项可通过 RequestResponseConfig
提供。
使用 RequestResponse::send_request
发送请求,并通过 RequestResponseEvent::Message
接收作为 RequestResponseMessage::Response
的响应。
收到RequestResponse::send_response
后,通过RequestResponseMessage::Request
和RequestResponseEvent::Message
发送响应。
协议族
单个RequestResponse
实例可以与整个共享相同请求和响应类型的协议族一起使用。为此,通常使用求和类型实例化RequestResponseCodec::Protocol
。
有限协议支持
可以只支持特定协议的入站或出站请求。这通过使用ProtocolSupport::Inbound
或ProtocolSupport::Outbound
使用协议来实例化RequestResponse
来实现。可以以这种方式配置协议族的任何子集。这样的协议在子流的入站或出站协议协商期间不会进行广告。
依赖项
~10–15MB
~320K SLoC