50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
// First and foremost:
|
|
// I'm not a fan of `socket.io` because it's huge and complex.
|
|
// I much prefer `ws` because it's very simple and easy.
|
|
// That said, it's popular.......
|
|
"use strict";
|
|
|
|
// Note: You DO NOT NEED socket.io
|
|
// You can just use WebSockets
|
|
// (see the websocket example)
|
|
|
|
function httpsWorker(glx) {
|
|
var socketio = require("socket.io");
|
|
var io;
|
|
|
|
// we need the raw https server
|
|
var server = glx.httpsServer();
|
|
|
|
io = socketio(server);
|
|
|
|
// Then you do your socket.io stuff
|
|
io.on("connection", function(socket) {
|
|
console.log("a user connected");
|
|
socket.emit("Welcome");
|
|
|
|
socket.on("chat message", function(msg) {
|
|
socket.broadcast.emit("chat message", msg);
|
|
});
|
|
});
|
|
|
|
// servers a node app that proxies requests to a localhost
|
|
glx.serveApp(function(req, res) {
|
|
res.setHeader("Content-Type", "text/html; charset=utf-8");
|
|
res.end("Hello, World!\n\n💚 🔒.js");
|
|
});
|
|
}
|
|
|
|
var pkg = require("../../package.json");
|
|
//require("greenlock-express")
|
|
require("../../")
|
|
.init(function getConfig() {
|
|
// Greenlock Config
|
|
|
|
return {
|
|
package: { name: "socket-io-example", version: pkg.version },
|
|
maintainerEmail: "jon@example.com",
|
|
cluster: false
|
|
};
|
|
})
|
|
.serve(httpsWorker);
|