Skip to content

Instantly share code, notes, and snippets.

@mikeseese
Last active April 8, 2022 07:15
Show Gist options
  • Save mikeseese/6b6f566b78e516aa2586c4f6148061bb to your computer and use it in GitHub Desktop.
Save mikeseese/6b6f566b78e516aa2586c4f6148061bb to your computer and use it in GitHub Desktop.
const fs = require("fs");
const http = require("http");
const https = require("https");
const { Server } = require("socket.io");
const express = require("express");
const tlsEnabled = true;
const app = express();
let server;
if (tlsEnabled) {
const key = fs.readFileSync("key.pem");
const cert = fs.readFileSync("cert.pem");
const options = {
key,
cert,
};
server = https.createServer(options, app);
} else {
server = http.createServer(app);
}
const io = new Server(server);
const errorListener = (e) => {
reject(e.message);
};
server.once("error", errorListener);
server.listen(3000, () => {
server.removeListener("error", errorListener);
console.log("listening");
resolve();
});
io.on("connection", (socket) => {
console.log("connection!");
socket.on("disconnect", (reason) => {
console.log("disconnected: " + reason);
});
});
@mikeseese
Copy link
Author

Reference documentation: https://nodejs.org/en/knowledge/HTTP/servers/how-to-create-a-HTTPS-server/

To generate a self-signed certificate:

openssl genrsa -out key.pem
openssl req -new -key key.pem -out csr.pem
openssl x509 -req -days 9999 -in csr.pem -signkey key.pem -out cert.pem
rm csr.pem

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment