UNPKG

artik-sdk

Version:

SDK for developing applications for Samsung's ARTIK platform

103 lines (89 loc) 2.95 kB
var cloud = require('../src/cloud'); var artik = require('../src/'); var opt = require('getopt'); var fs = require('fs'); var access_token = ""; var device_id = ""; var test_message = ''; var security = new artik.security.Security(); var conn = new cloud(); try{ opt.setopt("t:d:m:r:sv"); } catch (e){ switch (e.type) { case "unknown": console.log("Unknown option: -%s", e.opt); console.log("Usage: node cloud-websocket-example.js [-t <access token>] [-d <device id>] [-m <JSON type test message>]" + "[-s for enabling SDR (Secure Device Registered) test] [-v for verifying root certificate] [-r <CA root file>]"); break; case "required": console.log("Required parameter for option: -%s", e.opt); break; default: console.dir(e); } process.exit(0); } var ssl_config = { ca_cert: Buffer.from(""), verify_cert: "none", } var se_config = { key_id: "ARTIK/0", key_algo: "ecc_sec_p256r1" } var ping_period = 20000; var pong_timeout = 5000; opt.getopt(function (o, p){ switch(o){ case 't': access_token = String(p); break; case 'd': device_id = String(p); break; case 'm': test_message = String(p); break; case 'r': var data = fs.readFileSync(String(p)); ssl_config.ca_cert = Buffer.from(data); break; case 's': ssl_config["se_config"] = se_config; ssl_config.client_cert = security.get_certificate('ARTIK/0', 'ARTIK_SECURITY_CERT_TYPE_PEM'); ssl_config.client_key = security.get_publickey("ecc_sec_p256r1", 'ARTIK/0'); break; case 'v': ssl_config.verify_cert = "required"; break; default: console.log("Unknown option: -%s", e.opt); console.log("Usage: node cloud-websocket-example.js [-t <access token>] [-d <device id>] [-m <JSON type test message>]" + "[-s for enabling SDR (Secure Device Registered) test] [-v for verifying root certificate] [-r <CA root file>]"); process.exit(0); } }); conn.on('connected', function(result) { console.log("Connect result: " + result); if (result != "CONNECTED") process.exit(0); }); conn.on('receive', function(message) { console.log("Received: " + message); }); conn.websocket_open_stream(access_token, device_id, ping_period, pong_timeout, ssl_config); process.on('SIGINT', function () { console.log("Close stream"); conn.websocket_close_stream(); process.exit(0); }); setInterval(function () { console.log("Writing: " + test_message); conn.websocket_send_message(test_message); }, 1000); setTimeout(function() { console.log("Time out, close stream"); conn.websocket_close_stream(); process.exit(0); }, 5500);