Software /
code /
prosody
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(""); |