Mon, 04 Jan 2016 11:44:19 +0000
client.lua: Add /watchers endpoint to get the current number of people watching the feed
0
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
1 | local socket = require "socket"; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
2 | local server = require "net.server_select"; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 | local http_server = require"net.http.server"; |
6
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
4 | local new_uuid = require "util.uuid".generate; |
0
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
5 | local log = require "util.logger".init("clients"); |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
6 | |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
7 | local response_head = table.concat({ |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
8 | "HTTP/1.1 200 OK"; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
9 | "Max-Age: 0"; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
10 | "Expires: 0"; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 | "Cache-Control: no-cache, private"; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
12 | "Pragma: no-cache"; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
13 | "Content-Type: multipart/x-mixed-replace; boundary=--BoundaryString"; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
14 | "Keep-Alive: timeout=5, max=99"; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
15 | "Connection: Keep-Alive"; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
16 | "Transfer-Encoding: chunked"; |
6
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
17 | "Set-Cookie: COOKIE_STRING"; |
0
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
18 | ""; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
19 | ""; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
20 | }, "\r\n"); |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
21 | |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
22 | local listener = { onconnect = function () end; onincoming = function () end; } |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
23 | |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
24 | local last_chunk; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
25 | |
6
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
26 | local have_clients = false; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
27 | |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
28 | -- [conn] = cookie |
0
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
29 | local clients = {}; |
6
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
30 | -- [cookie] = conn |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
31 | local client_by_cookie = {}; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
32 | -- [conn] = last_active_timestamp |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
33 | local active_clients = {}; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
34 | |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
35 | local activity_timeout = 20; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
36 | |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
37 | local function update_have_clients() |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
38 | if have_clients and not next(active_clients) then |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
39 | have_clients = false; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
40 | log("debug", "No more clients"); |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
41 | events.fire_event("no-clients"); |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
42 | elseif not have_clients and next(active_clients) then |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
43 | have_clients = true; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
44 | log("debug", "Active clients"); |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
45 | events.fire_event("have-clients"); |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
46 | end |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
47 | end |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
48 | |
0
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
49 | |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
50 | -- Called when a HTTP stream client closes |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
51 | function listener.ondisconnect(conn) |
6
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
52 | client_by_cookie[clients[conn]] = nil; |
0
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
53 | clients[conn] = nil; |
6
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
54 | active_clients[conn] = nil; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
55 | update_have_clients(); |
0
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
56 | end |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
57 | listener.ondetach = listener.ondisconnect; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
58 | |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
59 | function handle_request(event, path) |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
60 | local path = event.request.url.path; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
61 | if path ~= "/cam" then |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
62 | return 404; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
63 | end |
6
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
64 | |
0
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
65 | local conn = event.response.conn; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
66 | |
6
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
67 | local cookie = event.request.headers.cookie; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
68 | if cookie then |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
69 | log("debug", "Client %s connected", cookie); |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
70 | else |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
71 | cookie = new_uuid(); |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
72 | log("debug", "New client connected, assigned %s", cookie); |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
73 | end |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
74 | conn:write((response_head:gsub("COOKIE_STRING", cookie))); |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
75 | clients[conn] = cookie; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
76 | active_clients[conn] = os.time(); |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
77 | client_by_cookie[cookie] = conn; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
78 | |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
79 | update_have_clients(); |
0
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
80 | |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
81 | if last_chunk then |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
82 | conn:write(last_chunk); |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
83 | end |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
84 | |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
85 | conn:setlistener(listener); |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
86 | |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
87 | return true; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
88 | end |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
89 | |
6
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
90 | local function mark_active(request) |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
91 | local cookie = event.request.headers.cookie; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
92 | if not cookie then |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
93 | log("warn", "Active client with no cookie"); |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
94 | return; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
95 | end |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
96 | local conn = client_by_cookie[cookie]; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
97 | if not conn then |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
98 | log("warn", "Active client with no connection"); |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
99 | return; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
100 | end |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
101 | active_clients[conn] = os.time(); |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
102 | update_have_clients(); |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
103 | end |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
104 | |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
105 | function handle_active(event, path) |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
106 | mark_active(event.request); |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
107 | return "OK"; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
108 | end |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
109 | |
7
59655d6c45b3
client.lua: Add /watchers endpoint to get the current number of people watching the feed
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
110 | function handle_watchers(event) |
59655d6c45b3
client.lua: Add /watchers endpoint to get the current number of people watching the feed
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
111 | local active, total = 0, 0; |
59655d6c45b3
client.lua: Add /watchers endpoint to get the current number of people watching the feed
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
112 | for client in pairs(clients) do |
59655d6c45b3
client.lua: Add /watchers endpoint to get the current number of people watching the feed
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
113 | total = total + 1; |
59655d6c45b3
client.lua: Add /watchers endpoint to get the current number of people watching the feed
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
114 | if active_clients[client] then |
59655d6c45b3
client.lua: Add /watchers endpoint to get the current number of people watching the feed
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
115 | active = active + 1; |
59655d6c45b3
client.lua: Add /watchers endpoint to get the current number of people watching the feed
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
116 | end |
59655d6c45b3
client.lua: Add /watchers endpoint to get the current number of people watching the feed
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
117 | end |
59655d6c45b3
client.lua: Add /watchers endpoint to get the current number of people watching the feed
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
118 | mark_active(event.request); |
59655d6c45b3
client.lua: Add /watchers endpoint to get the current number of people watching the feed
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
119 | return tostring(total); |
59655d6c45b3
client.lua: Add /watchers endpoint to get the current number of people watching the feed
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
120 | end |
59655d6c45b3
client.lua: Add /watchers endpoint to get the current number of people watching the feed
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
121 | |
0
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
122 | events.add_handler("image-changed", function (event) |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
123 | log("debug", "New image"); |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
124 | local chunk_data = table.concat({ |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
125 | "--BoundaryString", |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
126 | "Content-Type: image/jpeg"; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
127 | "Content-Length: "..#event.image; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
128 | ""; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
129 | event.image; |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
130 | }, "\r\n"); |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
131 | last_chunk = ("%x\r\n%s\r\n"):format(#chunk_data, chunk_data); |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
132 | |
6
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
133 | local time_now = os.time(); |
0
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
134 | for client in pairs(clients) do |
6
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
135 | local active_time = active_clients[client]; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
136 | if active_time and time_now - active_time < activity_timeout then |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
137 | client:write(last_chunk); |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
138 | else |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
139 | active_clients[client] = nil; |
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
140 | end |
0
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
141 | end |
6
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
142 | update_have_clients(); |
0
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
143 | end); |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
144 | |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
145 | http_server.add_host("localhost"); |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
146 | http_server.set_default_host("localhost"); |
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
147 | http_server.add_handler("GET localhost/*", handle_request); |
6
4e46ef3035ba
clients.lua: Add client activity tracking
Matthew Wild <mwild1@gmail.com>
parents:
0
diff
changeset
|
148 | http_server.add_handler("GET localhost/active", handle_active); |
7
59655d6c45b3
client.lua: Add /watchers endpoint to get the current number of people watching the feed
Matthew Wild <mwild1@gmail.com>
parents:
6
diff
changeset
|
149 | http_server.add_handler("GET localhost/watchers", handle_watchers); |
0
d363a6692a10
Initial commit. Tortoises are fun.
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
150 | http_server.listen_on(8006); |