lune/tests/net/socket/wss.luau

28 lines
809 B
Lua

local net = require("@lune/net")
local serde = require("@lune/serde")
local task = require("@lune/task")
-- We're going to use Discord's WebSocket gateway server
-- for testing wss - it does not require auth, and this test
-- only exists to ensure wss (WebSockets with TLS) works correctly
local socket = net.socket("wss://gateway.discord.gg/?v=10&encoding=json")
while not socket.closeCode do
local response = socket.next()
if response then
local decodeSuccess, decodeMessage = pcall(serde.decode, "json" :: "json", response)
if not decodeSuccess then
error(
string.format(
"Discord API did not respond with valid JSON!\n%s",
tostring(decodeMessage)
)
)
end
-- Close the connection after a second with the success close code
task.wait(1)
socket.close(1000)
end
end