diff options
Diffstat (limited to 'utils')
-rw-r--r-- | utils/ident.js | 20 | ||||
-rw-r--r-- | utils/writewrap.js | 13 |
2 files changed, 16 insertions, 17 deletions
diff --git a/utils/ident.js b/utils/ident.js index 187132f..b4fa8ff 100644 --- a/utils/ident.js +++ b/utils/ident.js @@ -2,32 +2,32 @@ const vec = require('../utils/vec'); -module.exports = function identify(sock, initOnce, init, deinit){ - // `sock` should be Socket instance. +module.exports = function identify(){ + // `this` should be Socket instance. // initOnce and init should be functions that act like they describe; initOnce runs once per program execution and init whenever the socket turns back on - sock.on('open', ()=>{ + let self = this; + + self.on('open', ()=>{ // "Pings" the server with a cursor location which is detected and saved by identity() let coords = [Math.floor(Math.random()*100000+16), Math.floor(Math.random()*1000000+16)]; - sock.cursor(coords); - sock.on('cursor', detect); + self.cursor(coords); + self.on('cursor', detect); function detect(pos, send){ if (vec.equals(pos[0],coords)){ - sock.off('cursor', detect); + self.off('cursor', detect); identity(send); } } }); - sock.on('close', deinit); - // Calls initOnce and init on successful identification. let initialized = false; function identity(send){ if (! initialized){ initialized = true; - initOnce(); + self.emit('initOnce'); } - init(send); + self.emit('init', send); } } diff --git a/utils/writewrap.js b/utils/writewrap.js index 3ca7ede..2e2ae07 100644 --- a/utils/writewrap.js +++ b/utils/writewrap.js @@ -1,12 +1,11 @@ // An EventEmitter wrapper for socket.js writes const EventEmitter = require('events'); -class wwrap extends EventEmitter{ - constructor(socket){ - super(); - socket.on('write', (acc) => { // Assumed that none are rejected because I've never seen it - for (let w of acc) this.emit(w); - }); - } +function wwrap(){ // should be called with wwrap.call(socket) + let self = this; + self.on('write', (acc) => { + for (let w of acc) this.emit(w); + }); } + module.exports = wwrap; |