11#!/usr/bin/env node
22const WebSocketServer = require ( 'websocket' ) . server
3- const http = require ( 'http' )
43const net = require ( 'net' )
54const fs = require ( 'fs' )
65
@@ -9,11 +8,26 @@ let connections = []
98
109// parse any arguments
1110const argv = require ( 'minimist' ) ( process . argv . slice ( 2 ) )
11+ const http = require ( process . env . SSL_ENABLED || argv . ssl ? 'https' : 'http' )
1212
1313const SERVER_PORT = argv . port ? parseInt ( argv . port ) : 2048
1414const WEBSOCKET_PORT = argv . websocket ? parseInt ( argv . websocket ) : 8080
1515const SERVER_ADDR = argv . host ? argv . host . replace ( / [ ' " ] + / g, '' ) : '127.0.0.1'
1616
17+ const config = Object . assign ( { } , argv , process . env )
18+
19+ let credentials = { }
20+
21+ if ( config . SSL_ENABLED || config . ssl ) {
22+ const privateKey = fs . readFileSync ( config . SSL_KEY || config . key , 'utf8' )
23+ const certificate = fs . readFileSync ( config . SSL_CERTIFICATE || config . cert , 'utf8' )
24+
25+ credentials = {
26+ key : privateKey ,
27+ cert : certificate
28+ }
29+ }
30+
1731// create a listening socket
1832net . createServer ( ( sock ) => {
1933 sock . on ( 'data' , ( data ) => {
@@ -31,7 +45,7 @@ net.createServer((sock) => {
3145} ) . listen ( SERVER_PORT )
3246
3347// create a http server
34- const server = http . createServer ( ( request , response ) => {
48+ const server = http . createServer ( credentials , ( request , response ) => {
3549 console . log ( ( new Date ( ) ) + ' Received request for ' + request . url )
3650 response . writeHead ( 404 )
3751 response . end ( )
@@ -56,7 +70,8 @@ function originIsAllowed (origin) {
5670}
5771
5872function createTemplate ( ) {
59- var output = '<!DOCTYPE html>\n' +
73+ const protocol = config . SSL_ENABLED || argv . ssl ? 'wss' : 'ws'
74+ const output = '<!DOCTYPE html>\n' +
6075 '<html>\n' +
6176 ' <head>\n' +
6277 ' <title>Example of a user defined function (UDF) in MySQL</title>\n' +
@@ -68,7 +83,7 @@ function createTemplate () {
6883 ' crossorigin="anonymous"></script>\n' +
6984 ' <script>\n' +
7085 ' $(document).ready(function() {\n' +
71- ' var ws = new WebSocket(\'ws ://' + SERVER_ADDR + ':' + WEBSOCKET_PORT + '\', \'echo-protocol\');\n' +
86+ ' var ws = new WebSocket(\'' + protocol + ' ://' + SERVER_ADDR + ':' + WEBSOCKET_PORT + '\', \'echo-protocol\');\n' +
7287 ' ws.onmessage = function(event) {\n' +
7388 ' $(\'body\').append(event.data + "<br />");\n' +
7489 ' };\n' +
0 commit comments