scgi-stream

Simple SCGI client

scgi-stream

Simple SCGI client.

scgi-stream lets you talk to scgi-speaking services without having to go through an intermediate HTTP server.

Available via npm:

$ npm install scgi-stream

Or via git:

$ git clone git://github.com/deoxxa/scgi-stream.git node_modules/scgi-stream

request

Makes an SCGI request. Returns an SCGIResponse object.

scgi.request(options, [data]);
var scgi = require("scgi-stream");
 
scgi.request(options);

Arguments

  • options - an object specifying options for the request and response. Available options are host, port, path, method, and headers. host, port, path, and method are strings, while headers is an object with a predictable structure.
  • data - the payload of the request. Optional. If not supplied, will be replaced with an empty body.

SCGIRequest

A readable stream representing a request.

new SCGIRequest(options, [data]);
var req = new scgi.SCGIRequest({
  path: "/",
  headers: {
    "content-type": "text/plain",
  },
}, "hi there");
 
req.pipe(process.stdout);

Arguments

  • options - an object specifying options for the request. Available options are path, method, and headers.
  • data - payload for the request. Optional.

SCGIResponse

A duplex stream that parses and represents a response. Emits a headers event when the headers for the stream have been parsed, then passes through all following data.

new SCGIResponse(options);
var res = new scgi.SCGIResponse();
 
socket.pipe(res).pipe(process.stdout);
 
res.on("headers", function(headers) {
  console.log(headers);
});

Arguments

  • options - an object with the typical stream.Transform options such as highWaterMark, objectMode, etc.

Also see example.js.

var scgi = require("scgi-stream");
 
var options = {
  host: "127.0.0.1",
  port: 17199,
  path: "/",
};
 
var res = scgi.request(options, "<methodCall><methodName>system.listMethods</methodName></methodCall>");
 
res.on("headers", function(headers) {
  console.log(headers);
});
 
res.pipe(process.stdout);

3-clause BSD. A copy is included with the source.