11 个不稳定版本 (5 个重大更改)
新功能 0.7.0 |
|
---|---|
0.7.0-alpha.2 | 2024年8月16日 |
0.7.0-alpha.1 | 2024年7月30日 |
0.6.0 | 2024年7月30日 |
0.1.4 | 2023年10月9日 |
##1841 in 游戏开发
每月下载量:344
115KB
1.5K SLoC
aeronet_channel
使用crossbeam-channel
实现MPSC的内存通道传输,是aeronet的内存通道传输实现。
此传输可以在任何环境中使用,包括本地应用程序或WASM,但不能通过网络与其他计算机远程通信。当开发可能支持多玩家的本地单机服务器时,此传输很有用,因为它允许您编写相同的逻辑,而无需关心您连接的服务器是远程还是本地。
入门指南
请参阅aeronet
以了解如何使用任何传输。创建一个ChannelServer
,该服务器将处理客户端连接。然后创建并连接到一个ChannelClient
,该客户端连接到该服务器。您可以通过其状态访问客户端的键,以便以后从服务器断开连接。
use aeronet::{
client::{ClientTransport, ClientState},
server::ServerTransport,
bytes::Bytes,
lane::LaneIndex,
};
use aeronet_channel::{
client::ChannelClient,
server::{ClientKey, ChannelServer},
};
#[derive(Debug, Clone, Copy)]
struct AppLane;
impl From<AppLane> for LaneIndex {
fn from(_: AppLane) -> Self {
Self::from_raw(0)
}
}
let mut server = ChannelServer::new();
server.open().unwrap();
let mut client = ChannelClient::new();
client.connect(&mut server).unwrap();
let msg = Bytes::from_static(b"hi!");
client.send(msg, AppLane).unwrap();
let ClientState::Connected(client_state) = client.state() else {
unreachable!();
};
let client_key = client_state.key;
server.disconnect(client_key, "app closing");
依赖关系
~1.2–4.5MB
~80K SLoC