| |
| if mg.lua_type ~= "websocket" then |
| mg.write("HTTP/1.0 403 Forbidden\r\n") |
| mg.write("Connection: close\r\n") |
| mg.write("\r\n") |
| mg.write("forbidden") |
| return |
| end |
| |
| |
| -- table of all active connection |
| allConnections = {} |
| |
| -- function to get a client identification string |
| function who(tab) |
| local ri = allConnections[tab.client].request_info |
| return ri.remote_addr .. ":" .. ri.remote_port |
| end |
| |
| -- Callback to accept or reject a connection |
| function open(tab) |
| allConnections[tab.client] = tab |
| return true -- return true to accept the connection |
| end |
| |
| -- Callback for "Websocket ready" |
| function ready(tab) |
| return true -- return true to keep the connection open |
| end |
| |
| -- Callback for "Websocket received data" |
| function data(tab) |
| mg.write(1, tab.data); |
| return true -- return true to keep the connection open |
| end |
| |
| -- Callback for "Websocket is closing" |
| function close(tab) |
| allConnections[tab.client] = nil |
| end |
| |