Skip to content

Latest commit

 

History

History
111 lines (102 loc) · 6.62 KB

Servers.md

File metadata and controls

111 lines (102 loc) · 6.62 KB
title layout category
Kettle Servers
default
Kettle

Kettle includes two builtin grades, kettle.server for defining a plain HTTP server, and a derived grade kettle.server.ws for defining a server capable of handling WebSockets endpoints. The former wraps the standard facilities of node.js for constructing an http.Server, and the latter wraps the facilities of the ws WebSockets library for constructing a ws.Server. In both cases, the Kettle grades can either accept servers previously constructed and injected in configuration, or can take responsibility for constructing the native servers themselves (the default).

Configuration options for a kettle.server

The kettle.server grade accepts the following options which can usefully be configured by the user. Naturally by virtue of being a fluid.component there are numerous other parts of its lifecycle which can be customised, but these are the options principally supported for user configuration:

Supported configurable options for a kettle.server
Option Type Description
members.expressApp express The express application which this server is to be bound to. If this option is not overriden, the server will automatically construct one using the express() constructor.
members.httpServer http.Server The node.js HTTP server which this server is to be bound to. If this option is not overriden, the server will use the one extracted from the expressApp member
port Number The port number which this server is to listen on. Defaults to 8081.
rootMiddleware middlewareSequence The group of middleware which is to be executed for every request handled by this server
components.middlewareHolder Component A plain component container for middleware that is intended to be resolvable throughout the server's component tree
events.onListen Event An event fired once this server has started listening on its port. Fired with one argument, the server component itself
events.beforeStop Event An event fired just before this server is about to be stopped. This is an opportunity to clean up any resource (e.g. close any open sockets). Fired with one argument, the server component itself
events.onStopped Event An event fired after the server is stopped and the HTTP server is no longer listening. Fired with one argument, the server component itself
events.onContributeMiddleware Event This event is useful for authors trying to integrate with 3rd-party express applications. This is a useful lifecycle point, before Kettle registers its own middleware to the express application, for an external integrator to register their own middleware first, e.g. using app.use. Fired with one argument, the server component itself – typically only that.expressApp will be of interest to the listener
events.onContributeRouteHandlers Event This event is useful for authors trying to integrate with 3rd-party express applications. This is a useful lifecycle point, before Kettle registers its own route handlers to the express application, for an external integrator to register their own route handlers first, e.g. using app.get etc.. Fired with one argument, the server component itself – typically only that.expressApp will be of interest to the listener

Configuration options for a kettle.server.ws

A WebSockets-capable server exposes all of the configurable options supported by a kettle.server in addition to the ones in the table below:

Supported configurable options for a kettle.server.ws
Option Type Description
wsServerOptions Object Any options to be forwarded to the constructor of the ws.Server. Note that after construction, this server will be available as the top-level member named wsServer on the overall component.