显示crate…

2个不稳定版本

0.10.0 2021年3月12日
0.9.0 2021年3月15日
0.0.0 2021年3月11日

#10#tetsy-libp2p

24 每月下载
用于 2 crates

MIT 许可证

745KB
13K SLoC

request-response

通用请求/响应协议。

通用用法

RequestResponse 是一个 NetworkBehaviour,实现了通用请求/响应协议或协议族,其中每个请求都在连接上的新子流中发送。 RequestResponse 对发送的实际消息是泛型的,这些消息以 RequestResponseCodec 的形式定义。创建请求/响应协议相当于提供一个此特质的实现,然后可以将其提供给 RequestResponse::new。进一步配置选项可通过 RequestResponseConfig 提供。

使用 RequestResponse::send_request 发送请求,并通过 RequestResponseEvent::Message 接收作为 RequestResponseMessage::Response 的响应。

收到RequestResponse::send_response后,通过RequestResponseMessage::RequestRequestResponseEvent::Message发送响应。

协议族

单个RequestResponse实例可以与整个共享相同请求和响应类型的协议族一起使用。为此,通常使用求和类型实例化RequestResponseCodec::Protocol

有限协议支持

可以只支持特定协议的入站或出站请求。这通过使用ProtocolSupport::InboundProtocolSupport::Outbound使用协议来实例化RequestResponse来实现。可以以这种方式配置协议族的任何子集。这样的协议在子流的入站或出站协议协商期间不会进行广告。

依赖项

~10–15MB
~320K SLoC