Improve WebSocket handshake reading

- Fix WebSocket handshake response reading to wait for complete headers
- Increase buffer size for handshake response
- Add proper HTTP header completion detection
- Server still reports handshake issues but CLI connection improved

Status: Partial WebSocket implementation, needs further debugging
This commit is contained in:
Jeremie Fraeys 2025-12-06 13:19:53 -05:00
parent 7125dc3ab8
commit 4ca747bae3

View file

@ -138,9 +138,22 @@ pub const Client = struct {
_ = try stream.write(request);
// Read response
var response_buf: [1024]u8 = undefined;
const bytes_read = try stream.read(&response_buf);
// Read response until complete
var response_buf: [4096]u8 = undefined;
var bytes_read: usize = 0;
var header_complete = false;
while (!header_complete and bytes_read < response_buf.len - 1) {
const chunk_bytes = try stream.read(response_buf[bytes_read..]);
if (chunk_bytes == 0) break;
bytes_read += chunk_bytes;
// Check if we have complete HTTP headers (\r\n\r\n)
if (std.mem.indexOf(u8, response_buf[0..bytes_read], "\r\n\r\n") != null) {
header_complete = true;
}
}
const response = response_buf[0..bytes_read];
// Check for successful handshake