From e9802bf5466120c891aed786dfcfa053b525e80a Mon Sep 17 00:00:00 2001 From: Bob Farrell Date: Wed, 23 Apr 2025 19:11:02 +0100 Subject: [PATCH] WIP --- build.zig.zon | 4 +- demo/src/app/views/websockets.zig | 10 +- demo/src/app/views/websockets/index.zmpl | 28 ++- src/Routes.zig | 17 +- src/jetzig.zig | 1 + src/jetzig/channels.zig | 5 +- src/jetzig/channels/ActionRouter.zig | 206 +++++++++++++++++++++-- src/jetzig/channels/Channel.zig | 78 +++++---- src/jetzig/channels/Message.zig | 28 ++- src/jetzig/channels/Route.zig | 4 +- src/jetzig/http.zig | 1 - src/jetzig/http/Server.zig | 8 +- src/jetzig/http/Websocket.zig | 84 --------- src/jetzig/websockets.zig | 3 + src/jetzig/websockets/Websocket.zig | 136 +++++++++++++++ 15 files changed, 448 insertions(+), 165 deletions(-) delete mode 100644 src/jetzig/http/Websocket.zig create mode 100644 src/jetzig/websockets.zig create mode 100644 src/jetzig/websockets/Websocket.zig diff --git a/build.zig.zon b/build.zig.zon index 290a42e..acd7326 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -25,8 +25,8 @@ .hash = "jetkv-0.0.0-zCv0fmCGAgCyYqwHjk0P5KrYVRew1MJAtbtAcIO-WPpT", }, .zmpl = .{ - .url = "https://github.com/jetzig-framework/zmpl/archive/cfbbc1263c4c62fa91579280c08c5a935c579563.tar.gz", - .hash = "zmpl-0.0.1-SYFGBmJsAwCUsj-noN2QEWHY1paouyj0naGNQ2uTIcYw", + .url = "https://github.com/jetzig-framework/zmpl/archive/9c54edd62b47aabdcb0e5f17beb45637b9de6a33.tar.gz", + .hash = "zmpl-0.0.1-SYFGBl5sAwDu45IUKKH3TQRc4qZ8A1P2nNaU4iO3Zf-6", }, .httpz = .{ .url = "https://github.com/karlseguin/http.zig/archive/37d7cb9819b804ade5f4b974b82f8dd0622225ed.tar.gz", diff --git a/demo/src/app/views/websockets.zig b/demo/src/app/views/websockets.zig index dce713d..4a9a2e7 100644 --- a/demo/src/app/views/websockets.zig +++ b/demo/src/app/views/websockets.zig @@ -12,15 +12,15 @@ pub const Channel = struct { } pub fn receive(message: jetzig.channels.Message) !void { - const value = try message.value(); + const params = try message.params() orelse return; - if (value.getT(.boolean, "reset") == true) { + if (params.remove("reset")) { try resetGame(message.channel); try message.channel.sync(); return; } - const cell: usize = if (value.getT(.integer, "cell")) |integer| + const cell: usize = if (params.getT(.integer, "cell")) |integer| @intCast(integer) else return; @@ -62,8 +62,8 @@ pub const Channel = struct { pub const Actions = struct { pub fn reset(channel: jetzig.channels.Channel) !void { - _ = channel; - std.debug.print("here\n", .{}); + try resetGame(channel); + try channel.sync(); } }; diff --git a/demo/src/app/views/websockets/index.zmpl b/demo/src/app/views/websockets/index.zmpl index df24e3d..4295edf 100644 --- a/demo/src/app/views/websockets/index.zmpl +++ b/demo/src/app/views/websockets/index.zmpl @@ -1,6 +1,7 @@