hap-node-client
Advanced tools
Comparing version 0.0.13 to 0.0.14
@@ -100,3 +100,3 @@ "use strict"; | ||
setTimeout(_discoveryEnd.bind(this), 10 * 1000); // End discover after 55 seconds | ||
setTimeout(_discoveryEnd.bind(this), 20 * 1000); // End discover after 55 seconds | ||
} catch (ex) { | ||
@@ -103,0 +103,0 @@ handleError(ex); |
@@ -7,2 +7,3 @@ // Monkey patch before you require http for the first time. | ||
const net = require('net'); | ||
var Queue = require('better-queue'); | ||
@@ -12,5 +13,15 @@ module.exports = eventedHttpClient; | ||
function eventedHttpClient(request) { | ||
// console.log("INIT", request); | ||
// | ||
// Queue requests to a single homebridge instance | ||
// | ||
this.q = new Queue(function(request, cb) { | ||
processRequest.call(request.context, request.request, cb); | ||
}, { | ||
concurrent: 1, | ||
autoResume: true | ||
}); | ||
this.context = URL.parse(request.url); | ||
var buffer = []; | ||
this.url = request.url; | ||
this.connected = false; | ||
@@ -30,7 +41,8 @@ this.chunked = false; | ||
// If in the middle of a chunked response | ||
// debug("Data", data.toString()); | ||
// debug("Data", this.url, data.toString()); | ||
// debug("Chunked", this.chunked); | ||
var response; | ||
if (this.chunked) { | ||
if (data.slice(-7).toString() !== '\r\n0\r\n\r\n') { | ||
// debug("final ?", data.slice(-7)); | ||
if (data.slice(-5).toString() !== '0\r\n\r\n') { | ||
// console.log("Chunked"); | ||
@@ -121,6 +133,13 @@ buffer.push(data); | ||
function processRequest(request, cb) { | ||
this.callback = cb; | ||
this.client.write(_buildMessage(request)); | ||
} | ||
eventedHttpClient.prototype.request = function(request) { | ||
// debug("Request", request); | ||
this.callback = once(request.callback); | ||
this.client.write(_buildMessage(request)); | ||
// debug("QRequest", request); | ||
this.q.push({ | ||
request: request, | ||
context: this | ||
}, once(request.callback)); | ||
}; | ||
@@ -127,0 +146,0 @@ |
@@ -10,3 +10,2 @@ // | ||
var instances = {}; | ||
var Queue = require('better-queue'); | ||
@@ -72,11 +71,2 @@ module.exports = hapRequest; | ||
var q = new Queue(function(request, cb) { | ||
// debug("requestQueue", request); | ||
request.options.callback = cb; | ||
request.instance.request(request.options); | ||
}, { | ||
concurrent: 1, | ||
autoResume: true | ||
}); | ||
hapRequest.Request = function(options) { | ||
@@ -87,7 +77,4 @@ var instance = URL.parse(options.url).host; | ||
if (instances[instance].connected) { | ||
q.push({ | ||
options: options, | ||
instance: instances[instance] | ||
}, options.callback); | ||
// instances[instance].request(options); | ||
// debug('instance', instance); | ||
instances[instance].request(options); | ||
} else { | ||
@@ -94,0 +81,0 @@ debug("Deleting unused connection"); |
{ | ||
"name": "hap-node-client", | ||
"version": "0.0.13", | ||
"version": "0.0.14", | ||
"description": "Client for Hap-NodeJS", | ||
@@ -5,0 +5,0 @@ "main": "HAPNodeJSClient.js", |
29279
784