Some further fixes to the ajax client, as well as maybe fixing the i.d.l. bug manifesting from a poor msg input send.
This commit is contained in:
parent
f04c82fa17
commit
410d04456c
3 changed files with 7 additions and 7 deletions
|
|
@ -274,7 +274,7 @@ class PortalSessionHandler(SessionHandler):
|
||||||
"""
|
"""
|
||||||
return len(self.get_sessions(include_unloggedin=include_unloggedin))
|
return len(self.get_sessions(include_unloggedin=include_unloggedin))
|
||||||
|
|
||||||
def session_from_csessid(self, csessid):
|
def sessions_from_csessid(self, csessid):
|
||||||
"""
|
"""
|
||||||
Given a session id, retrieve the session (this is primarily
|
Given a session id, retrieve the session (this is primarily
|
||||||
intended to be called by web clients)
|
intended to be called by web clients)
|
||||||
|
|
|
||||||
|
|
@ -96,9 +96,9 @@ class WebClient(resource.Resource):
|
||||||
self.lineSend(csessid, ["ajax_keepalive", [], {}])
|
self.lineSend(csessid, ["ajax_keepalive", [], {}])
|
||||||
# remove timed-out sessions
|
# remove timed-out sessions
|
||||||
for csessid in to_remove:
|
for csessid in to_remove:
|
||||||
sess = self.sessionhandler.sessions_from_csessid(csessid)
|
sessions = self.sessionhandler.sessions_from_csessid(csessid)
|
||||||
if sess:
|
for sess in sessions:
|
||||||
sess[0].disconnect()
|
sess.disconnect()
|
||||||
self.last_alive.pop(csessid, None)
|
self.last_alive.pop(csessid, None)
|
||||||
if not self.last_alive:
|
if not self.last_alive:
|
||||||
# no more ajax clients. Stop the keepalive
|
# no more ajax clients. Stop the keepalive
|
||||||
|
|
@ -198,7 +198,7 @@ class WebClient(resource.Resource):
|
||||||
csessid = request.args.get('csessid')[0]
|
csessid = request.args.get('csessid')[0]
|
||||||
|
|
||||||
self.last_alive[csessid] = (time(), False)
|
self.last_alive[csessid] = (time(), False)
|
||||||
sess = self.sessionhandler.session_from_csessid(csessid)
|
sess = self.sessionhandler.sessions_from_csessid(csessid)
|
||||||
if sess:
|
if sess:
|
||||||
sess = sess[0]
|
sess = sess[0]
|
||||||
cmdarray = json.loads(request.args.get('data')[0])
|
cmdarray = json.loads(request.args.get('data')[0])
|
||||||
|
|
@ -239,7 +239,7 @@ class WebClient(resource.Resource):
|
||||||
"""
|
"""
|
||||||
csessid = request.args.get('csessid')[0]
|
csessid = request.args.get('csessid')[0]
|
||||||
try:
|
try:
|
||||||
sess = self.sessionhandler.session_from_csessid(csessid)[0]
|
sess = self.sessionhandler.sessions_from_csessid(csessid)[0]
|
||||||
sess.sessionhandler.disconnect(sess)
|
sess.sessionhandler.disconnect(sess)
|
||||||
except IndexError:
|
except IndexError:
|
||||||
self.client_disconnect(csessid)
|
self.client_disconnect(csessid)
|
||||||
|
|
|
||||||
|
|
@ -375,7 +375,7 @@ An "emitter" object must have a function
|
||||||
else {
|
else {
|
||||||
// We'd expect to see a keepalive message rather than
|
// We'd expect to see a keepalive message rather than
|
||||||
// a timeout. Ping the server to see if it's still there.
|
// a timeout. Ping the server to see if it's still there.
|
||||||
msg("idle", "input");
|
msg(["text", ["idle"], {}], "input");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stop_polling) {
|
if (stop_polling) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue