Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // http://127.0.0.1:9001
- // http://localhost:9001
- var server = require('https'),
- url = require('url'),
- path = require('path'),
- fs = require('fs');
- var options = {
- key: fs.readFileSync('/etc/letsencrypt/live/urprecious.org/privkey.pem'),
- cert: fs.readFileSync('/etc/letsencrypt/live/urprecious.org/fullchain.pem'),
- }
- function serverHandler(request, response) {
- var uri = url.parse(request.url).pathname,
- filename = path.join(process.cwd(), uri);
- fs.exists(filename, function (exists) {
- if (!exists) {
- response.writeHead(404, {
- 'Content-Type': 'text/plain'
- });
- response.write('404 Not Found: ' + filename + '\n');
- response.end();
- return;
- }
- if (filename.indexOf('favicon.ico') !== -1) {
- return;
- }
- var isWin = !!process.platform.match(/^win/);
- if (fs.statSync(filename).isDirectory() && !isWin) {
- filename += '/index.html';
- } else if (fs.statSync(filename).isDirectory() && !!isWin) {
- filename += '\\index.html';
- }
- fs.readFile(filename, 'binary', function (err, file) {
- if (err) {
- response.writeHead(500, {
- 'Content-Type': 'text/plain'
- });
- response.write(err + '\n');
- response.end();
- return;
- }
- var contentType;
- if (filename.indexOf('.html') !== -1) {
- contentType = 'text/html';
- }
- if (filename.indexOf('.js') !== -1) {
- contentType = 'application/javascript';
- }
- if (contentType) {
- response.writeHead(200, {
- 'Content-Type': contentType
- });
- } else response.writeHead(200);
- response.write(file, 'binary');
- response.end();
- });
- });
- }
- // var config = {
- // "socketURL": "/",
- // "dirPath": "",
- // "homePage": "/",
- // "socketMessageEvent": "RTCMultiConnection-Message",
- // "socketCustomEvent": "RTCMultiConnection-Custom-Message",
- // "port": 9001,
- // "enableLogs": false,
- // "isUseHTTPs": false,
- // "enableAdmin": false
- // };
- var config = {
- "socketURL": "/",
- "dirPath": "",
- "homePage": "/demos/index.html",
- "socketMessageEvent": "RTCMultiConnection-Message",
- "socketCustomEvent": "RTCMultiConnection-Custom-Message",
- "port": "9001",
- "enableLogs": "false",
- "autoRebootServerOnFailure": "false",
- "isUseHTTPs": "true",
- "sslKey": "/etc/letsencrypt/live/urprecious.org/privkey.pem",
- "sslCert": "/etc/letsencrypt/live/urprecious.org/cert.pem",
- "sslCabundle": "",
- "enableAdmin": "true",
- "adminUserName": "username",
- "adminPassword": "password"
- };
- var RTCMultiConnectionServer = require('rtcmulticonnection-server');
- var ioServer = require('socket.io');
- var app = server.createServer(options, serverHandler);
- RTCMultiConnectionServer.beforeHttpListen(app, config);
- app = app.listen(process.env.PORT || 9001, process.env.IP || "0.0.0.0", function () {
- RTCMultiConnectionServer.afterHttpListen(app, config);
- });
- // --------------------------
- // socket.io codes goes below
- ioServer(app).on('connection', function (socket) {
- RTCMultiConnectionServer.addSocket(socket, config);
- // ----------------------
- // below code is optional
- const params = socket.handshake.query;
- if (!params.socketCustomEvent) {
- params.socketCustomEvent = 'custom-message';
- }
- socket.on(params.socketCustomEvent, function (message) {
- socket.broadcast.emit(params.socketCustomEvent, message);
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement