# actix-bs-subs **Repository Path**: lauset/actix-bs-subs ## Basic Information - **Project Name**: actix-bs-subs - **Description**: Actix web + WebSocket + Redis - **Primary Language**: Rust - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-03-20 - **Last Updated**: 2023-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Actix Bs Subs actix web + websocket + redis sub ### 项目运行 ```sh cd n-app cargo clean cargo build ``` ```sh cargo run ``` 访问页面 localhost:8085/ ### Redis 订阅 启动服务会订阅 Redis 通道,并广播至某房间内所有用户 方法位置: n-app/src/rs/client/sub_channel_notice 通道名称: `channel_notice` 默认通知房间: `main` ### WebSocket 实时通讯 启动服务可通过 ws://localhost:8085/ws 加入 websocket 文本命令: - `/list` 列出所有房间 - `/ids` 列出所有客户端连接ID - `/users` 列出所有用户 - `/join` room_name 加入某个房间 - `/name` new_name 重命名 心跳机制: 每间隔 `10s` 会发送 ping(b"") ### 接口 分数记录 接口路径: `/api/score` RESTFul 风格 - `GET`: /api/score?start=0&end=2`: 列出排行榜3 - `POST`: /api/score 新增用户分数 ``` { "key": "score:list", "name": "genji", "score": 100 } ``` - `PUT`: /api/score 修改分数,+10 ``` { "key": "score:list", "name": "genji", "score": 10 } ``` ### 打包构建 build or npm run build ```sh cargo build --release ``` 运行并生成日志文件(根目录 /project 下) ```sh nohup ./target/release/n-app-server > n-app-server.out 2>&1 & ```