mirror of
https://github.com/lammertb/libhttp.git
synced 2025-08-16 11:21:57 +03:00
57 lines
1.2 KiB
Lua
57 lines
1.2 KiB
Lua
|
|
function iswebsocket()
|
|
return pcall(function()
|
|
if (string.upper(mg.request_info.http_headers.Upgrade)~="WEBSOCKET") then error("") end
|
|
end)
|
|
end
|
|
|
|
if not iswebsocket() then
|
|
mg.write("HTTP/1.0 403 Forbidden\r\n")
|
|
mg.write("Connection: close\r\n")
|
|
mg.write("\r\n")
|
|
return
|
|
end
|
|
|
|
|
|
-- Callback for "Websocket ready"
|
|
function ready()
|
|
mg.write("text", "Websocket ready")
|
|
end
|
|
|
|
-- Callback for "Websocket received data"
|
|
function data(bits, content)
|
|
end
|
|
|
|
-- Callback for "Websocket is closing"
|
|
function close()
|
|
end
|
|
|
|
|
|
coroutine.yield(true); -- first yield returns (true) or (false) to accept or reject the connection
|
|
|
|
ready()
|
|
|
|
local lasthand = ""
|
|
|
|
repeat
|
|
local cont, bits, content = coroutine.yield(true, 1.0)
|
|
|
|
local date = os.date('*t');
|
|
local hand = (date.hour%12)*60+date.min;
|
|
|
|
mg.write("text", string.format("%u:%02u:%02u", date.hour, date.min, date.sec));
|
|
|
|
if (hand ~= lasthand) then
|
|
mg.write("text", string.format("-->h %u", hand*360/(12*60)));
|
|
mg.write("text", string.format("-->m %u", date.min*360/60));
|
|
lasthand = hand;
|
|
end
|
|
|
|
if bits and content then
|
|
data(bits, content)
|
|
end
|
|
until not cont;
|
|
|
|
mg.write("text", "end")
|
|
close()
|