greenlock-express.js/examples/socket.io/server.js

50 lines
1.3 KiB
JavaScript
Raw Normal View History

2019-11-01 10:12:40 +00:00
// 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) {
2019-11-01 21:14:07 +00:00
var socketio = require("socket.io");
var io;
2019-11-01 10:12:40 +00:00
2019-11-01 21:14:07 +00:00
// we need the raw https server
var server = glx.httpsServer();
2019-11-01 10:12:40 +00:00
2019-11-01 21:14:07 +00:00
io = socketio(server);
2019-11-01 10:12:40 +00:00
2019-11-01 21:14:07 +00:00
// Then you do your socket.io stuff
io.on("connection", function(socket) {
console.log("a user connected");
socket.emit("Welcome");
2019-11-01 10:12:40 +00:00
2019-11-01 21:14:07 +00:00
socket.on("chat message", function(msg) {
socket.broadcast.emit("chat message", msg);
});
});
2019-11-01 10:12:40 +00:00
2019-11-01 21:14:07 +00:00
// 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");
});
2019-11-01 10:12:40 +00:00
}
var pkg = require("../../package.json");
//require("greenlock-express")
require("../../")
2019-11-01 21:14:07 +00:00
.init(function getConfig() {
// Greenlock Config
return {
package: { name: "socket-io-example", version: pkg.version },
maintainerEmail: "jon@example.com",
cluster: false
};
})
.serve(httpsWorker);