forked from openiap/opencore
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.ts
More file actions
85 lines (73 loc) · 3.33 KB
/
Copy pathindex.ts
File metadata and controls
85 lines (73 loc) · 3.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import * as winston from "winston";
import * as http from "http";
import { Logger } from "./Logger";
import { WebServer } from "./WebServer";
import { amqp_consumer, amqp_rpc_consumer } from "./amqp_consumer";
import { amqp_publisher, amqp_rpc_publisher } from "./amqp_publisher";
import { amqp_exchange_consumer } from "./amqp_exchange_consumer";
import { amqp_exchange_publisher } from "./amqp_exchange_publisher";
import { WebSocketClient } from "./WebSocketClient";
import { SigninMessage, Message, TokenUser } from "./Message";
import { Config } from "./Config";
import { Crypt } from "./Crypt";
const logger: winston.Logger = Logger.configure();
Config.DumpConfig();
var con: amqp_consumer = new amqp_consumer(logger, Config.amqp_url, "hello1");
var pub: amqp_publisher = new amqp_publisher(logger, Config.amqp_url, "");
var excon1: amqp_exchange_consumer = new amqp_exchange_consumer(logger, Config.amqp_url, "hello2");
var excon2: amqp_exchange_consumer = new amqp_exchange_consumer(logger, Config.amqp_url, "hello2");
var expub: amqp_exchange_publisher = new amqp_exchange_publisher(logger, Config.amqp_url, "hello2");
var rpccon: amqp_rpc_consumer = new amqp_rpc_consumer(logger, Config.amqp_url, "rpchello", (msg: string): string => {
return "server response! " + msg;
});
var rpcpub: amqp_rpc_publisher = new amqp_rpc_publisher(logger, Config.amqp_url);
process.on('unhandledRejection', up => {
console.error(up);
throw up
});
// function isNumeric(n) {
// return !isNaN(parseFloat(n)) && isFinite(n);
// }
function isNumeric(num) {
return !isNaN(num)
}
(async function (): Promise<void> {
try {
var socket: WebSocketClient = new WebSocketClient(logger, Config.api_ws_url);
socket.events.on("onopen", async () => {
var q: SigninMessage = new SigninMessage();
var user = new TokenUser();
if (isNumeric(Config.nodered_id)) {
user.name = "nodered" + Config.nodered_id;
} else {
user.name = Config.nodered_id;
}
user.username = user.name;
q.jwt = Crypt.createToken(user);
var msg: Message = new Message(); msg.command = "signin"; msg.data = JSON.stringify(q);
var result: SigninMessage = await socket.Send<SigninMessage>(msg);
logger.info("signed in as " + result.user.name + " with id " + result.user._id);
const server: http.Server = await WebServer.configure(logger, socket);
logger.info("listening on " + Config.baseurl());
});
// console.log("************************");
// await con.connect();
// await pub.connect();
// pub.SendMessage("pub/sub hi mom");
// console.log("************************");
// await excon1.connect();
// await excon2.connect();
// await expub.connect();
// expub.SendMessage("exchange/hi mom");
// console.log("************************");
// await rpccon.connect();
// await rpcpub.connect();
// console.log("************************");
// var rpcresult:string = await rpcpub.SendMessage("Client says hi!", "rpchello");
// console.log("rpcresult: " + rpcresult);
// console.log("************************");
} catch (error) {
logger.error(error.message);
console.error(error);
}
})();