Add support for binding to unix sockets

Fixes #686.
Fixes #691.
This commit is contained in:
Pavel Djundik 2017-08-31 21:56:20 +03:00
parent a53169627e
commit b79a6cce0c
2 changed files with 25 additions and 11 deletions

View file

@ -16,6 +16,8 @@ module.exports = {
// IP address or hostname for the web server to listen on. // IP address or hostname for the web server to listen on.
// Setting this to undefined will listen on all interfaces. // Setting this to undefined will listen on all interfaces.
// //
// For UNIX domain sockets, use unix:/absolute/path/to/file.sock.
//
// @type string // @type string
// @default undefined // @default undefined
// //

View file

@ -83,18 +83,30 @@ module.exports = function() {
}, app); }, app);
} }
server.listen({ let listenParams;
port: config.port,
host: config.host,
}, () => {
const protocol = config.https.enable ? "https" : "http";
var address = server.address();
log.info( if (typeof config.host === "string" && config.host.startsWith("unix:")) {
"Available at " + listenParams = config.host.replace(/^unix:/, "");
colors.green(`${protocol}://${address.address}:${address.port}/`) + } else {
` in ${colors.bold(config.public ? "public" : "private")} mode` listenParams = {
); port: config.port,
host: config.host,
};
}
server.listen(listenParams, () => {
if (typeof listenParams === "string") {
log.info("Available on socket " + colors.green(listenParams));
} else {
const protocol = config.https.enable ? "https" : "http";
const address = server.address();
log.info(
"Available at " +
colors.green(`${protocol}://${address.address}:${address.port}/`) +
` in ${colors.bold(config.public ? "public" : "private")} mode`
);
}
const sockets = io(server, { const sockets = io(server, {
serveClient: false, serveClient: false,