function check_open_secure_channel_fails(securityPolicy, securityMode, options, done) { options = options || {}; options = _.extend(options, { securityMode: opcua.MessageSecurityMode.get(securityMode), securityPolicy: opcua.SecurityPolicy.get(securityPolicy), serverCertificate: serverCertificate, defaultSecureTokenLifetime: g_defaultSecureTokenLifetime, connectionStrategy: no_reconnect_connectivity_strategy }); var client = new OPCUAClient(options); client.on("backoff", function (number, delay) { debugLog(" backoff attempt#", number, " retry in ", delay); }); client.connect(endpointUrl, function (err) { if (err) { debugLog("Error = ", err.message); client.disconnect(function () { done(); }); } else { client.disconnect(function () { done(new Error("The connection's succeeded, but was expected to fail!")); }); } }); }
function common_test(securityPolicy, securityMode, options, done) { //xx console.log("securityPolicy = ", securityPolicy,"securityMode = ",securityMode); opcua.MessageSecurityMode.get(securityMode).should.not.eql(null, "expecting supporting"); options = options || {}; options = _.extend(options, { securityMode: opcua.MessageSecurityMode.get(securityMode), securityPolicy: opcua.SecurityPolicy.get(securityPolicy), serverCertificate: serverCertificate, connectionStrategy: no_reconnect_connectivity_strategy }); options.defaultSecureTokenLifetime = options.defaultSecureTokenLifetime || g_defaultSecureTokenLifetime; //xx console.log("xxxx options.defaultSecureTokenLifetime",options.defaultSecureTokenLifetime); var token_change = 0; var client = new OPCUAClient(options); perform_operation_on_client_session(client, endpointUrl, function (session, inner_done) { keep_monitoring_some_variable(session, options.defaultSecureTokenLifetime * 4 + 1000, function (err) { token_change.should.be.greaterThan(2); inner_done(err); }); }, done); client.on("lifetime_75", function (token) { debugLog("received lifetime_75", JSON.stringify(token)); }); client.on("security_token_renewed", function () { token_change += 1; }); client.on("close", function () { debugLog(" connection has been closed"); }); }
.alias("P", "securityPolicy") .alias("u", "userName") .alias("p", "password") .alias("n", "node") .alias("t", "timeout") .alias("d", "debug") .alias("h", "history") .example("simple_client --endpoint opc.tcp://localhost:49230 -P=Basic256 -s=SIGN") .example("simple_client -e opc.tcp://localhost:49230 -P=Basic256 -s=SIGN -u JoeDoe -p P@338@rd ") .example("simple_client --endpoint opc.tcp://localhost:49230 -n=\"ns=0;i=2258\"") .argv; var securityMode = opcua.MessageSecurityMode.get(argv.securityMode || "NONE"); if (!securityMode) { throw new Error("Invalid Security mode , should be " + opcua.MessageSecurityMode.enums.join(" ")); } var securityPolicy = opcua.SecurityPolicy.get(argv.securityPolicy || "None"); if (!securityPolicy) { throw new Error("Invalid securityPolicy , should be " + opcua.SecurityPolicy.enums.join(" ")); } //xx argv.securityMode = argv.securityMode || "SIGNANDENCRYPT"; //xx argv.securityPolicy = argv.securityPolicy || "Basic128Rsa15"; var timeout = parseInt(argv.timeout) * 1000 || 20000; var monitored_node = argv.node || "ns=1;s=PumpSpeed"; //"ns=1;s=Temperature";
function common_test_expected_server_initiated_disconnection(securityPolicy, securityMode, done) { opcua.MessageSecurityMode.get(securityMode).should.not.eql(null, "expecting a valid MessageSecurityMode"); var fail_fast_connectivity_strategy = { maxRetry: 1, initialDelay: 100, maxDelay: 200, randomisationFactor: 0 }; var options = { securityMode: opcua.MessageSecurityMode.get(securityMode), securityPolicy: opcua.SecurityPolicy.get(securityPolicy), serverCertificate: serverCertificate, defaultSecureTokenLifetime: g_defaultSecureTokenLifetime, connectionStrategy: fail_fast_connectivity_strategy }; var token_change = 0; var client = new OPCUAClient(options); var after_reconnection_spy = new sinon.spy(); var start_reconnection_spy = new sinon.spy(); perform_operation_on_client_session(client, endpointUrl, function (session, inner_done) { client.on("start_reconnection", start_reconnection_spy); client.on("after_reconnection", after_reconnection_spy); keep_monitoring_some_variable(session, g_defaultTestDuration, function (err) { console.log("err = ", err); // inner_done(err); }); client.on("close", function () { debugLog(" connection has been closed"); inner_done(); }); }, function (err) { debugLog(" RECEIVED ERROR :".yellow.bold, err); start_reconnection_spy.callCount.should.eql(1); //xx after_reconnection_spy.callCount.should.eql(1); should(err).be.instanceOf(Error); done(); }); client.on("backoff", function (number, delay) { console.log("backoff attempt #".bgWhite.yellow,number, " retrying in ",delay/1000.0," seconds"); }); client.on("lifetime_75", function (token) { debugLog(" received lifetime_75", JSON.stringify(token)); }); client.on("security_token_renewed", function () { token_change += 1; }); client.on("close", function () { debugLog(" connection has been closed"); }); }