Mercurial > hg > rlgwebd
comparison rlgwebd.js @ 102:f34a286c51bd
RLG-Web server: code cleanup.
Delete some TermSession code left over from the first attempt at
Websockets. Also don't bother logging the disconnection of watchers
after the game has ended.
| author | John "Elwin" Edwards <elwin@sdf.org> |
|---|---|
| date | Fri, 13 Jul 2012 08:52:17 -0700 |
| parents | e59d68082664 |
| children | f30495f7ede8 |
comparison
equal
deleted
inserted
replaced
| 101:e59d68082664 | 102:f34a286c51bd |
|---|---|
| 129 this.record = fs.createWriteStream(ttyrec, { mode: 0664 }); | 129 this.record = fs.createWriteStream(ttyrec, { mode: 0664 }); |
| 130 /* Holds the output since the last screen clear, so watchers can begin | 130 /* Holds the output since the last screen clear, so watchers can begin |
| 131 * with a complete screen. */ | 131 * with a complete screen. */ |
| 132 this.framebuf = new Buffer(1024); | 132 this.framebuf = new Buffer(1024); |
| 133 this.frameoff = 0; | 133 this.frameoff = 0; |
| 134 /* List of WebSockets watching the game. */ | |
| 135 this.watchsocks = []; | |
| 136 logins[lkey].sessions.push(this.sessid); | 134 logins[lkey].sessions.push(this.sessid); |
| 137 /* END setup */ | 135 /* END setup */ |
| 138 function ttyrec_chunk(datastr) { | 136 function ttyrec_chunk(datastr) { |
| 139 var ts = new Date(); | 137 var ts = new Date(); |
| 140 var buf = new Buffer(datastr); | 138 var buf = new Buffer(datastr); |
| 168 chunk.copy(this.framebuf, this.frameoff); | 166 chunk.copy(this.framebuf, this.frameoff); |
| 169 this.frameoff += chunk.length; | 167 this.frameoff += chunk.length; |
| 170 }; | 168 }; |
| 171 this.write = function(data) { | 169 this.write = function(data) { |
| 172 this.term.write(data); | 170 this.term.write(data); |
| 173 }; | |
| 174 // WebSocket watchers. | |
| 175 this.addWS = function (conn) { | |
| 176 this.watchsocks.push(conn); | |
| 177 }; | |
| 178 this.removeWS = function (conn) { | |
| 179 var i = this.watchsocks.indexOf(conn); | |
| 180 if (i >= 0) { | |
| 181 if (conn.connected) | |
| 182 conn.close(); | |
| 183 this.watchsocks.splice(i, 1); | |
| 184 return true; | |
| 185 } | |
| 186 else | |
| 187 return false; | |
| 188 }; | 171 }; |
| 189 // Teardown. | 172 // Teardown. |
| 190 this.term.on("exit", function () { | 173 this.term.on("exit", function () { |
| 191 fs.unlink(ss.lock); | 174 fs.unlink(ss.lock); |
| 192 ss.record.end(); | 175 ss.record.end(); |
| 386 session.on('data', dataH); | 369 session.on('data', dataH); |
| 387 session.on('exit', exitH); | 370 session.on('exit', exitH); |
| 388 conn.on('close', function(code, desc) { | 371 conn.on('close', function(code, desc) { |
| 389 session.removeListener('data', dataH); | 372 session.removeListener('data', dataH); |
| 390 session.removeListener('exit', exitH); | 373 session.removeListener('exit', exitH); |
| 391 tslog("A WebSocket watcher has left game %d", session.sessid); | 374 if (session.sessid in sessions) |
| 375 tslog("A WebSocket watcher has left game %d", session.sessid); | |
| 392 }); | 376 }); |
| 393 conn.sendUTF(JSON.stringify({ | 377 conn.sendUTF(JSON.stringify({ |
| 394 "t": "w", "w": session.w, "h": session.h, | 378 "t": "w", "w": session.w, "h": session.h, |
| 395 "p": session.pname, "g": session.game.uname | 379 "p": session.pname, "g": session.game.uname |
| 396 })); | 380 })); |
