1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 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()
|