0.3.1 • Published 13 years ago
scgi-stream v0.3.1
scgi-stream
Simple SCGI client.
Overview
scgi-stream lets you talk to scgi-speaking services without having to go through an intermediate HTTP server.
Installation
Available via npm:
$ npm install scgi-stream
Or via git:
$ git clone git://github.com/deoxxa/scgi-stream.git node_modules/scgi-stream
API
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, andheaders.host,port,path, andmethodare strings, whileheadersis 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, andheaders. - 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.Transformoptions such ashighWaterMark,objectMode, etc.
Example
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);License
3-clause BSD. A copy is included with the source.
Contact
- GitHub (deoxxa)
- Twitter (@deoxxa)
- ADN (@deoxxa)
- Email (deoxxa@fknsrs.biz)