1个不稳定发布
0.1.0 | 2024年6月22日 |
---|
#1526 in 异步
155KB
2.5K SLoC
skrillax-stream
这是用于处理《 Silkroad Online》连接的高级(tcp)流实现。它基于skrillax-network
系列的其他包(如 skrillax-packet
、skrillax-codec
、skrillax-serde
、skrillax-security
)构建。此外,它还为服务器和客户端提供了初始化握手,无论适用哪种。
lib.rs
:
提供处理《 Silkroad Online》包流的便捷抽象。
尽管可以使用底层包提供的抽象,例如简单地使用[skrillax_packet]和[skrillax_codec],但这可能会变得相当繁琐。特别是当处理大量不同的包时,创建包的逻辑分组(即协议)可能更容易。
协议本质上只是一组包,以及可能的其他协议,允许读取和写入单个类型,而不是手动处理所有可能的案例。
预期您将使用 tokio::net::TcpStream 进行连接,以便可以通过调用 stream::SilkroadTcpExt::into_silkroad_stream 创建 Silkroad 流。使用结果 stream::SilkroadStreamRead 和 stream::SilkroadStreamWrite,您现在可以使用 stream::SilkroadStreamRead::next_packet 读取包,并使用 stream::SilkroadStreamWrite::write_packet 编写包。
在提供的流抽象之上,它还提供了一种通过 handshake::ActiveSecuritySetup 和 handshake::PassiveSecuritySetup 处理服务器端和客户端的安全握手的方法。
依赖项
~6–15MB
~182K SLoC