UNPKG

3.91 kBJavaScriptView Raw
1"use strict";
2
3var beameSDK = require("../index.js");
4var express = require('express');
5var appExpress = express();
6// This require is only cause the example is inside the beame-sdk repository, you will be using require('beame-sdk');
7var creds = beameSDK.creds;
8var developers = beameSDK.creds.list("developer", "", "JSON");
9var atoms = beameSDK.creds.list("atom", "", "JSON");
10var edgeclients = beameSDK.creds.list("edgeclient", "", "JSON");
11var developerHostname;
12var edgeClientCreated;
13var argv = require('minimist')(process.argv.slice(2));
14
15var sharedFolder =__dirname + '/public/shared';
16console.log(argv);
17if(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
24var 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};
50if(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
57if(edgeclients.length> 0){
58 console.log("You have edgeclient ready to go starting ....");
59 runTestBeameServer(edgeclients[0]._srvFqdn);
60 return;
61}
62
63if(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);//JIC - wait dns to update
73 edgeClientCreated = true;
74 return;
75 });
76 });
77}
78
79if(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);//JIC - wait dns to update
87 edgeClientCreated = true;
88 return;
89 });
90}
91
92
93