wae-websocket 0.0.1

WAE WebSocket - WebSocket 服务,支持 tokio-tungstenite
Documentation
# wae-websocket

WebSocket 模块 - 提供实时通信抽象层。

## 主要功能

- **服务端/客户端**: 统一的 WebSocket API
- **房间管理**: 支持房间广播
- **连接管理**: 连接状态跟踪
- **自动重连**: 客户端断线重连
- **心跳检测**: 保持连接活跃

## 技术栈

- **WebSocket**: tokio-tungstenite
- **异步运行时**: Tokio
- **序列化**: serde

## 服务端示例

```rust
use wae_websocket::{WebSocketServer, ServerConfig, ClientHandler, Connection, Message};

struct MyHandler;


impl ClientHandler for MyHandler {
    async fn on_connect(&self, conn: &Connection) -> Result<()> {
        println!("客户端连接: {}", conn.id);
        Ok(())
    }
    
    async fn on_message(&self, conn: &Connection, msg: Message) -> Result<()> {
        println!("收到消息: {:?}", msg);
        Ok(())
    }
    
    async fn on_disconnect(&self, conn: &Connection) {
        println!("客户端断开: {}", conn.id);
    }
}

#[tokio::main]
async fn main() {
    let server = WebSocketServer::new(ServerConfig {
        port: 8080,
        max_connections: 1000,
        ..Default::default()
    });
    
    server.start(MyHandler).await?;
}
```

## 客户端示例

```rust
use wae_websocket::{WebSocketClient, ClientConfig, Message};

#[tokio::main]
async fn main() {
    let mut client = WebSocketClient::new(ClientConfig::new("ws://localhost:8080"));
    
    client.send_text("Hello, Server!").await?;
    
    while let Some(msg) = client.receive().await {
        println!("收到: {:?}", msg);
    }
}
```

## 房间广播

```rust
let server = WebSocketServer::new(config);

server.room_manager().join("room-1", "conn-001").await;
server.broadcast_to_room("room-1", Message::text("大家好")).await?;
```