模块 ringo/jsgi/connector

低级 JSGI 适配器实现。

Functions


AsyncResponse (request, timeout)

创建流异步响应。返回的响应对象既可以在当前线程中同步使用,也可以从另一个线程异步使用,即使原始线程执行完毕后也是如此。 AsyncResponse 对象是线程安全的。

要在 Servlet 3.0+ 容器内启用异步支持,可能需要 web.xml 部署描述符中的其他 <async-supported>true</async-supported> 元素。这表明 Ringo 的 JsgiServlet 支持异步请求处理。

Example

const response = new AsyncResponse(request, 10000);
response.start(200, {"Content-Type": "text/plain"});

// this functions returns a ringo promise
doSomeAsyncStuff().then(function(data) {
  // write out result
  response.write(data);
  response.close();
}, function() {
  // just close the connection in case of an error
  response.close();
});

return response;

Parameters

Object request

the JSGI request object

Number timeout

time in milliseconds in which the async operation has to be completed; otherwise the request is aborted by the Servlet container. A negative value lets the async operation never time out. Defaults to 30 seconds.


handleRequest (moduleId, functionObj, request)

处理JSGI请求

Parameters

String moduleId

the module id. Ignored if functionObj is already a function.

Function|String functionObj

the function, either as function object or function name to be imported from the module moduleId.

Object request

the JSGI request object

Returns

Object

the JSGI response object