aboutsummaryrefslogtreecommitdiff
path: root/src/http/websocket.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/http/websocket.zig')
-rw-r--r--src/http/websocket.zig27
1 files changed, 11 insertions, 16 deletions
diff --git a/src/http/websocket.zig b/src/http/websocket.zig
index b8a14d77a..106f18433 100644
--- a/src/http/websocket.zig
+++ b/src/http/websocket.zig
@@ -53,6 +53,17 @@ pub const WebsocketHeader = packed struct {
compressed: bool = false, // rsv1
final: bool = true,
+ pub fn writeHeader(header: WebsocketHeader, writer: anytype, n: usize) anyerror!void {
+ try writer.writeIntBig(u16, @bitCast(u16, header));
+
+ // Write extended length if needed
+ switch (n) {
+ 0...126 => {}, // Included in header
+ 127...0xFFFF => try writer.writeIntBig(u16, @truncate(u16, n)),
+ else => try writer.writeIntBig(u64, n),
+ }
+ }
+
pub fn packLength(length: usize) u7 {
return switch (length) {
0...126 => @truncate(u7, length),
@@ -194,22 +205,6 @@ pub const Websocket = struct {
});
}
- pub fn writeHeader(self: *Websocket, header: WebsocketHeader, n: usize) anyerror!void {
- var stream = self.conn.client.writer(self.flags);
-
- try stream.writeIntBig(u16, @bitCast(u16, header));
-
- // Write extended length if needed
- switch (n) {
- 0...126 => {}, // Included in header
- 127...0xFFFF => try stream.writeIntBig(u16, @truncate(u16, n)),
- else => try stream.writeIntBig(u64, n),
- }
-
- // try self.io.flush();
-
- }
-
// Write a raw data frame
pub fn writeDataFrame(self: *Websocket, dataframe: WebsocketDataFrame) anyerror!usize {
var stream = self.conn.client.writer(self.flags);