mirror of
https://github.com/lune-org/lune.git
synced 2024-12-12 13:00:37 +00:00
31 lines
834 B
Text
31 lines
834 B
Text
local net = require("@lune/net")
|
|
local process = require("@lune/process")
|
|
local stdio = require("@lune/stdio")
|
|
local task = require("@lune/task")
|
|
|
|
-- We're going to use Discord's WebSocket gateway server
|
|
-- for testing that we can both read from a stream,
|
|
-- as well as write to the same stream concurrently
|
|
local socket = net.socket("wss://gateway.discord.gg/?v=10&encoding=json")
|
|
|
|
local spawnedThread = task.spawn(function()
|
|
while not socket.closeCode do
|
|
socket.next()
|
|
end
|
|
end)
|
|
|
|
local delayedThread = task.delay(5, function()
|
|
task.defer(process.exit, 1)
|
|
stdio.ewrite("`socket.send` halted, failed to write to socket")
|
|
process.exit(1)
|
|
end)
|
|
|
|
task.wait(1)
|
|
|
|
local payload = '{"op":1,"d":null}'
|
|
socket.send(payload)
|
|
socket.send(buffer.fromstring(payload))
|
|
socket.close(1000)
|
|
|
|
task.cancel(delayedThread)
|
|
task.cancel(spawnedThread)
|