显示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