Comparison

plugins/mod_bosh.lua @ 4690:55f690fdc915

mod_bosh: Optimisation, store reply_before value as waiting_requests value (saves a lookup)
author Matthew Wild <mwild1@gmail.com>
date Wed, 25 Apr 2012 19:57:46 +0100
parent 4684:dc70c4ffb66d
child 4692:8e7c683d78ca
comparison
equal deleted inserted replaced
4689:e8c357259993 4690:55f690fdc915
163 163
164 if not request.destroyed then 164 if not request.destroyed then
165 -- We're keeping this request open, to respond later 165 -- We're keeping this request open, to respond later
166 log("debug", "Have nothing to say, so leaving request unanswered for now"); 166 log("debug", "Have nothing to say, so leaving request unanswered for now");
167 if session.bosh_wait then 167 if session.bosh_wait then
168 request.reply_before = os_time() + session.bosh_wait; 168 waiting_requests[request] = os_time() + session.bosh_wait;
169 waiting_requests[request] = true;
170 end 169 end
171 end 170 end
172 171
173 if session.bosh_terminate then 172 if session.bosh_terminate then
174 session.log("debug", "Closing session with %d requests open", #session.requests); 173 session.log("debug", "Closing session with %d requests open", #session.requests);
397 local dead_sessions = {}; 396 local dead_sessions = {};
398 function on_timer() 397 function on_timer()
399 -- log("debug", "Checking for requests soon to timeout..."); 398 -- log("debug", "Checking for requests soon to timeout...");
400 -- Identify requests timing out within the next few seconds 399 -- Identify requests timing out within the next few seconds
401 local now = os_time() + 3; 400 local now = os_time() + 3;
402 for request in pairs(waiting_requests) do 401 for request, reply_before in pairs(waiting_requests) do
403 if request.reply_before <= now then 402 if reply_before <= now then
404 log("debug", "%s was soon to timeout, sending empty response", request.id); 403 log("debug", "%s was soon to timeout, sending empty response", request.id);
405 -- Send empty response to let the 404 -- Send empty response to let the
406 -- client know we're still here 405 -- client know we're still here
407 if request.conn then 406 if request.conn then
408 sessions[request.sid].send(""); 407 sessions[request.sid].send("");