fix websocket close wrapper

This commit is contained in:
Luna 2021-03-31 22:57:05 -03:00
parent 5e45349fff
commit 2fb7d018d5
1 changed files with 6 additions and 3 deletions

View File

@ -43,16 +43,19 @@ module Kemal
context.response.status_code = 500 context.response.status_code = 500
if error.is_a?(WebsocketError) if error.is_a?(WebsocketError)
code = error.code.to_i16 code = error.code.to_i32
message = error.status_message message = error.status_message
else else
code = 1011_i16 code = 1011_i32
message = "Exception" message = "Exception"
end end
raw = uninitialized UInt8[2] raw = uninitialized UInt8[2]
IO::ByteFormat::BigEndian.encode(code, raw.to_slice) IO::ByteFormat::BigEndian.encode(code, raw.to_slice)
socket.not_nil!.close(String.new(raw.to_slice) + message) socket.not_nil!.close(
HTTP::WebSocket::CloseCode.new(code),
message: String.new(raw.to_slice) + message
)
raise error unless error.is_a?(WebsocketError) raise error unless error.is_a?(WebsocketError)
end end