diff --git a/README.md b/README.md index 0ee6688..e6558f4 100644 --- a/README.md +++ b/README.md @@ -40,15 +40,15 @@ import simcu::websocket.common.WebSocketMessage src/ ├── websocket.cj # 模块锚点 ├── common/ -│ ├── WsTypes.cj # WebSocketMessage / ReadyState / WebSocketException / CloseCodes / WsEvents -│ └── FrameStream.cj # RFC 6455 帧层(握手工具、掩码、分片重组、maxPayload) +│ ├── ws_types.cj # WebSocketMessage / ReadyState / WebSocketException / CloseCodes / WsEvents +│ └── frame_stream.cj # RFC 6455 帧层(握手工具、掩码、分片重组、maxPayload) ├── client/ -│ └── WebSocketClient.cj # 客户端 +│ └── websocket_client.cj # 客户端 ├── server/ -│ ├── IWebsocketHandler.cj # 服务端 handler 接口(onConnect/onMessage/onClose/onError) -│ ├── WebSocketServer.cj # 监听 / 握手 / 按路径路由 / 广播 / 组存储 -│ ├── WebSocketSenders.cj # 链式门面(组管理 + 组播/单播发送的实现) -│ └── WebSocketConnection.cj # 服务端单条连接 +│ ├── i_websocket_handler.cj # 服务端 handler 接口(onConnect/onMessage/onClose/onError) +│ ├── websocket_server.cj # 监听 / 握手 / 按路径路由 / 广播 / 组存储 +│ ├── websocket_senders.cj # 链式门面(组管理 + 组播/单播发送的实现) +│ └── websocket_connection.cj # 服务端单条连接 └── tests/ └── websocket_test.cj # 端到端集成测试 ``` diff --git a/cjpm.toml b/cjpm.toml index e9d21f3..eaf58bf 100644 --- a/cjpm.toml +++ b/cjpm.toml @@ -3,7 +3,7 @@ cjc-version = "1.1.3" name = "websocket" organization = "simcu" description = "SimApi WebSocket 库(RFC 6455):事件回调式客户端与接口式服务端。客户端 connect/send(三重重载)/ping/close/terminate + onOpen/onMessage/onError/onClose;服务端 WebSocketServer(port) + addHandler(path, factory) 按路径路由、每连接独立 handler,链式门面 group(name)/conn(connId) 支持组管理/组播/单播/广播,连接断开自动清组" -version = "1.1.0" +version = "1.2.0" target-dir = "" output-type = "static" diff --git a/src/client/WebSocketClient.cj b/src/client/websocket_client.cj similarity index 100% rename from src/client/WebSocketClient.cj rename to src/client/websocket_client.cj diff --git a/src/common/FrameStream.cj b/src/common/frame_stream.cj similarity index 100% rename from src/common/FrameStream.cj rename to src/common/frame_stream.cj diff --git a/src/common/WsTypes.cj b/src/common/ws_types.cj similarity index 100% rename from src/common/WsTypes.cj rename to src/common/ws_types.cj diff --git a/src/server/IWebsocketHandler.cj b/src/server/i_websocket_handler.cj similarity index 100% rename from src/server/IWebsocketHandler.cj rename to src/server/i_websocket_handler.cj diff --git a/src/server/WebSocketConnection.cj b/src/server/websocket_connection.cj similarity index 100% rename from src/server/WebSocketConnection.cj rename to src/server/websocket_connection.cj diff --git a/src/server/WebSocketSenders.cj b/src/server/websocket_senders.cj similarity index 100% rename from src/server/WebSocketSenders.cj rename to src/server/websocket_senders.cj diff --git a/src/server/WebSocketServer.cj b/src/server/websocket_server.cj similarity index 98% rename from src/server/WebSocketServer.cj rename to src/server/websocket_server.cj index 5bfc120..12a6d42 100644 --- a/src/server/WebSocketServer.cj +++ b/src/server/websocket_server.cj @@ -64,6 +64,11 @@ public class WebSocketServer { s.bind() serverSock = Some(s) running = true + var paths = "" + for (p in pathFactories.keys()) { + paths = if (paths.isEmpty()) { p } else { "${paths}, ${p}" } + } + println("[websocket] 已监听 端口=${localPort} 端点=[${paths}]") spawn { => acceptLoop() } }