Mercurial > hg > rlgwebd
comparison rlgwebd.js @ 109:67b393f10c2b
RLG-Web: improve taking over sessions.
WebSocket sessions should not be taken over, and polling sessions are
not yet convertible to WebSockets. Eventually the current method of
taking over via Player#reset() should be replaced with autosaving the
game, which will always work.
author | John "Elwin" Edwards <elwin@sdf.org> |
---|---|
date | Sun, 15 Jul 2012 20:30:33 -0700 |
parents | b64e31c5ec31 |
children | 18a81cc0084b |
comparison
equal
deleted
inserted
replaced
108:86a458080e80 | 109:67b393f10c2b |
---|---|
754 // A callback to pass to the game-in-progress checker. | 754 // A callback to pass to the game-in-progress checker. |
755 var launch = function(err, fname) { | 755 var launch = function(err, fname) { |
756 var nodematch = new RegExp("^" + username + ":node:"); | 756 var nodematch = new RegExp("^" + username + ":node:"); |
757 if (fname && (fname.match(nodematch) === null)) { | 757 if (fname && (fname.match(nodematch) === null)) { |
758 /* It's being played in dgamelaunch. */ | 758 /* It's being played in dgamelaunch. */ |
759 sendError(res, 4, null); | 759 sendError(res, 4, "dgamelaunch"); |
760 tslog("%s is already playing %s", username, gname); | 760 tslog("%s is already playing %s", username, gname); |
761 return; | 761 return; |
762 } | 762 } |
763 // Game starting has been approved. | 763 // Game starting has been approved. |
764 var respondlaunch = function(nclient, success) { | 764 var respondlaunch = function(nclient, success) { |
784 respondlaunch(cli, true); | 784 respondlaunch(cli, true); |
785 tslog("Game %d has been taken over.", cli.session.sessid); | 785 tslog("Game %d has been taken over.", cli.session.sessid); |
786 return; | 786 return; |
787 } | 787 } |
788 } | 788 } |
789 sendError(res, 7); | 789 /* If there's no player, it's a WebSocket game, and shouldn't be |
790 * seized. */ | |
791 sendError(res, 4, "WebSocket"); | |
790 } | 792 } |
791 else { | 793 else { |
792 new Player(gname, lkey, dims, respondlaunch); | 794 new Player(gname, lkey, dims, respondlaunch); |
793 } | 795 } |
794 }; | 796 }; |