1 | "use strict";
|
2 |
|
3 | var beameSDK = require("../index.js");
|
4 | var express = require('express');
|
5 | var appExpress = express();
|
6 |
|
7 | var creds = beameSDK.creds;
|
8 | var developers = beameSDK.creds.list("developer", "", "JSON");
|
9 | var atoms = beameSDK.creds.list("atom", "", "JSON");
|
10 | var edgeclients = beameSDK.creds.list("edgeclient", "", "JSON");
|
11 | var developerHostname;
|
12 | var edgeClientCreated;
|
13 | var argv = require('minimist')(process.argv.slice(2));
|
14 |
|
15 | var sharedFolder =__dirname + '/public/shared';
|
16 | console.log(argv);
|
17 | if(argv.sharedFolder){
|
18 | console.log("Custom folder specified");
|
19 | var path = require('path');
|
20 | var sharedPath = path.resolve(argv.sharedFolder);
|
21 | sharedFolder = sharedPath;
|
22 | }
|
23 |
|
24 | var runTestBeameServer = function(hostname){
|
25 | beameSDK.BaseHttpsServer.SampleBeameServer(hostname, appExpress, function (data, app) {
|
26 | appExpress.use(express.static(__dirname + '/public'));
|
27 |
|
28 | var serveIndex = require('serve-index');
|
29 |
|
30 | console.log('Server started on https://'+hostname + " this is a publically accessible address");
|
31 | appExpress.use('/shared', serveIndex(sharedFolder, {'icons': true}));
|
32 | console.log("****************************************************************************************************");
|
33 | console.log("*****************************SERVER **********************STARTED***********************************");
|
34 | console.log("Server Local Directory " + sharedFolder);
|
35 | console.log("****************************************************************************************************");
|
36 |
|
37 |
|
38 | app.on("request", function (req, resp){
|
39 | console.log("On Request %j %j %j", req.method, req.url, req.headers );
|
40 | });
|
41 |
|
42 | app.on("upgrade", function (req, resp){
|
43 | console.log("On upgrade %j %j %j", req.method, req.url, req.headers );
|
44 | });
|
45 |
|
46 | var socketio = require('socket.io')(app);
|
47 | var chat = require('./chat/chatserver.js')(socketio);
|
48 | });
|
49 | };
|
50 | if(developers.length == 0){
|
51 | console.error("You dont have developer credentials in your .beame folder, please go to ");
|
52 | console.error(" https://registration.beameio.net and register with your email " );
|
53 | console.error("it will contain a command that looks like 'beame creds createDeveloper ......");
|
54 | console.error("Please run that command, and then relaunch the example ");
|
55 | }
|
56 |
|
57 | if(edgeclients.length> 0){
|
58 | console.log("You have edgeclient ready to go starting ....");
|
59 | runTestBeameServer(edgeclients[0]._srvFqdn);
|
60 | return;
|
61 | }
|
62 |
|
63 | if(atoms.length == 0 && edgeclients.length == 0 && developers.length > 0){
|
64 | console.log("You have developer credentials; now we will set up an Atom SSL cert, and actual edgeClient cert ");
|
65 | console.log("It will take about 30 seconds please wait patiently, yes we understand..., it will be much faster soon");
|
66 | var devHostname = developers[0]._srvFqdn;
|
67 | beameSDK.creds.createAtom(devHostname ,"BeameNode2", 1, function(data){
|
68 | console.log('Just created atom with host:'+data._srvFqdn);
|
69 | beameSDK.creds.createEdgeClient(data._srvFqdn, 1, function(edgeData){
|
70 | var edgeHostname = edgeData._srvFqdn;
|
71 | console.log('Congrats! My new hostname is: https://'+ edgeHostname);
|
72 | setTimeout(runTestBeameServer(edgeHostname), 2000);
|
73 | edgeClientCreated = true;
|
74 | return;
|
75 | });
|
76 | });
|
77 | }
|
78 |
|
79 | if(atoms.length > 0 && edgeclients.length === 0){
|
80 | console.log("You already have atom credentials your atom hostname is %j", atoms[0]._srvFqdn);
|
81 | console.log("All we need to do is to create the webserver aka edgeCert for the demo, about 30 seconds, yes its slow, but not for long");
|
82 |
|
83 | beameSDK.creds.createEdgeClient(atoms[0]._srvFqdn, 1, function(edgeData){
|
84 | var edgeHostname = edgeData._srvFqdn;
|
85 | console.log('Congrats! My new hostname is: https://'+ edgeHostname);
|
86 | setTimeout(runTestBeameServer(edgeHostname), 2000);
|
87 | edgeClientCreated = true;
|
88 | return;
|
89 | });
|
90 | }
|
91 |
|
92 |
|
93 |
|