diff --git a/evennia/server/portal/portalsessionhandler.py b/evennia/server/portal/portalsessionhandler.py index 78e5e8a02c..eabf5f0e48 100644 --- a/evennia/server/portal/portalsessionhandler.py +++ b/evennia/server/portal/portalsessionhandler.py @@ -274,7 +274,7 @@ class PortalSessionHandler(SessionHandler): """ 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 intended to be called by web clients) diff --git a/evennia/server/portal/webclient_ajax.py b/evennia/server/portal/webclient_ajax.py index 65a48fdf55..54b0fb7eb6 100644 --- a/evennia/server/portal/webclient_ajax.py +++ b/evennia/server/portal/webclient_ajax.py @@ -96,9 +96,9 @@ class WebClient(resource.Resource): self.lineSend(csessid, ["ajax_keepalive", [], {}]) # remove timed-out sessions for csessid in to_remove: - sess = self.sessionhandler.sessions_from_csessid(csessid) - if sess: - sess[0].disconnect() + sessions = self.sessionhandler.sessions_from_csessid(csessid) + for sess in sessions: + sess.disconnect() self.last_alive.pop(csessid, None) if not self.last_alive: # no more ajax clients. Stop the keepalive @@ -198,7 +198,7 @@ class WebClient(resource.Resource): csessid = request.args.get('csessid')[0] self.last_alive[csessid] = (time(), False) - sess = self.sessionhandler.session_from_csessid(csessid) + sess = self.sessionhandler.sessions_from_csessid(csessid) if sess: sess = sess[0] cmdarray = json.loads(request.args.get('data')[0]) @@ -239,7 +239,7 @@ class WebClient(resource.Resource): """ csessid = request.args.get('csessid')[0] try: - sess = self.sessionhandler.session_from_csessid(csessid)[0] + sess = self.sessionhandler.sessions_from_csessid(csessid)[0] sess.sessionhandler.disconnect(sess) except IndexError: self.client_disconnect(csessid) diff --git a/evennia/web/webclient/static/webclient/js/evennia.js b/evennia/web/webclient/static/webclient/js/evennia.js index 34d2e4bde9..f5d2dabe34 100644 --- a/evennia/web/webclient/static/webclient/js/evennia.js +++ b/evennia/web/webclient/static/webclient/js/evennia.js @@ -375,7 +375,7 @@ An "emitter" object must have a function else { // We'd expect to see a keepalive message rather than // a timeout. Ping the server to see if it's still there. - msg("idle", "input"); + msg(["text", ["idle"], {}], "input"); } if (stop_polling) {