Example #1
0
	var handler = function(response) {
		if (response.statusCode === 404) {
			callback(new Error('Not Found'));
		}
		else {
			this.headersProcessors.parseResponse(response.headers);
			var deserializer = new Deserializer(options.responseEncoding);
			deserializer.deserializeMethodResponse(response, callback);
		}
	}.bind(this);
Example #2
0
  methodCall: (methodName, parameters) => {
    let deferred = Q.defer();
    let deserializer = new Deserializer('utf8');
    let headerLength = 0;
    let nullChar = String.fromCharCode(0);
    let stream = net.connect({port: config.scgiHostPort, host: config.scgiHost});
    let xml = Serializer.serializeMethodCall(methodName, parameters);

    stream.setEncoding('UTF8');

    let headerItems = [
      `CONTENT_LENGTH${nullChar}${xml.length}${nullChar}`,
      `SCGI${nullChar}1${nullChar}`
    ];

    headerItems.forEach((item) => {
      headerLength += item.length;
    });

    let header = `${headerLength}:`;

    headerItems.forEach((headerItem) => {
      header += headerItem;
    });

    stream.write(`${header},${xml}`);

    deserializer.deserializeMethodResponse(stream, (error, response) => {
      if (error) {
        return deferred.reject(error);
      }
      return deferred.resolve(response);
    });

    return deferred.promise;
  }