X-Git-Url: https://git.wh0rd.org/?p=chrome-ext%2Fmusic-player-client.git;a=blobdiff_plain;f=js%2Ftcp-client.js;h=55bdaafa658d55ed7e798076542fdb8dfb45a206;hp=8d1db93eb9d12a74ac7ae9223dcecde2f81ccc7c;hb=e7d6adb435d30041cb586158b52fd4fdd71cd088;hpb=50dafc4c60cfd4183bdedcd86fcd9b6b932c6a0b diff --git a/js/tcp-client.js b/js/tcp-client.js index 8d1db93..55bdaaf 100644 --- a/js/tcp-client.js +++ b/js/tcp-client.js @@ -42,6 +42,7 @@ Author: Boris Smus (smus@chromium.org) // Socket. this.socketId = null; this.isConnected = false; + this.pollerId = null; log('initialized tcp client'); } @@ -49,7 +50,7 @@ Author: Boris Smus (smus@chromium.org) /** * Connects to the TCP socket, and creates an open socket. * - * @see http://developer.chrome.com/trunk/apps/socket.html#method-create + * @see http://developer.chrome.com/apps/socket.html#method-create * @param {Function} callback The function to call on connection */ TcpClient.prototype.connect = function(callback) { @@ -62,7 +63,7 @@ Author: Boris Smus (smus@chromium.org) /** * Sends a message down the wire to the remote side * - * @see http://developer.chrome.com/trunk/apps/socket.html#method-write + * @see http://developer.chrome.com/apps/socket.html#method-write * @param {String} msg The message to send * @param {Function} callback The function to call when the message has sent */ @@ -88,10 +89,12 @@ Author: Boris Smus (smus@chromium.org) /** * Disconnects from the remote side * - * @see http://developer.chrome.com/trunk/apps/socket.html#method-disconnect + * @see http://developer.chrome.com/apps/socket.html#method-disconnect */ TcpClient.prototype.disconnect = function() { socket.disconnect(this.socketId); + clearInterval(this.pollerId); + this.pollerId = null; this.isConnected = false; }; @@ -101,7 +104,7 @@ Author: Boris Smus (smus@chromium.org) * we go ahead and connect to the remote side. * * @private - * @see http://developer.chrome.com/trunk/apps/socket.html#method-connect + * @see http://developer.chrome.com/apps/socket.html#method-connect * @param {Object} createInfo The socket details */ TcpClient.prototype._onCreate = function(createInfo) { @@ -124,7 +127,8 @@ Author: Boris Smus (smus@chromium.org) */ TcpClient.prototype._onConnectComplete = function(resultCode) { // Start polling for reads. - setInterval(this._periodicallyRead.bind(this), 500); + clearInterval(this.pollerId); + this.pollerId = setInterval(this.poll.bind(this), 500); if (this.callbacks.connect) { log('connect complete'); @@ -136,9 +140,9 @@ Author: Boris Smus (smus@chromium.org) /** * Checks for new data to read from the socket * - * @see http://developer.chrome.com/trunk/apps/socket.html#method-read + * @see http://developer.chrome.com/apps/socket.html#method-read */ - TcpClient.prototype._periodicallyRead = function() { + TcpClient.prototype.poll = function() { socket.read(this.socketId, null, this._onDataRead.bind(this)); };