astronomical-theater/main.js

36 lines
1.0 KiB
JavaScript
Raw Normal View History

import tls from "tls";
import fs from "fs";
import GeminiServer from "./GeminiServer.js"
2021-08-28 18:32:40 +00:00
const options = {
2021-08-28 19:01:47 +00:00
//cert: fs.readFileSync("public-cert.pem"),
//key: fs.readFileSync("private-key.pem"),
SNICallback: function (servername, callback) {
console.log(servername);
if (servername === "localhost") {
callback(null, tls.createSecureContext({
cert: fs.readFileSync("public-cert.pem"),
key: fs.readFileSync("private-key.pem"),
}));
}else {
callback(null, tls.createSecureContext({
cert: fs.readFileSync("mac-gamma-pub-cert.pem"),
key: fs.readFileSync("mac-gamma-key.pem")
}))
}
}
2021-08-28 18:32:40 +00:00
};
const server = tls.createServer(options);
server.on("secureConnection", socket => {
2021-08-28 19:01:47 +00:00
socket.setEncoding("utf8");
socket.write("20 text/gemini\r\n");
socket.write("Hello, world!\r\n");
socket.write(`You're connecting from ${socket.servername}`)
socket.end();
2021-08-28 18:32:40 +00:00
});
server.listen(1965);
export { GeminiServer }