0.3.1 • Published 11 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
, andmethod
are strings, whileheaders
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
, 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.Transform
options 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)