trigger method
Implementation
AsyncReply<bool> trigger(ResourceTrigger trigger) {
if (trigger == ResourceTrigger.Open) {
if (_server != null) return new AsyncReply<bool>.ready(true);
var host = (instance as Instance).name.split(":");
// assign domain from hostname if not provided
var address = host[0];
var port = host.length > 1 ? int.parse(host[1]) : 10518;
var domain = instance?.attributes["domain"] ?? address;
var ws = instance?.attributes.containsKey("ws") == true ||
instance?.attributes.containsKey("wss") == true;
var secure = instance?.attributes.containsKey("secure") == true ||
instance?.attributes.containsKey("wss") == true;
if (instance?.attributes.containsKey("username") == true &&
instance?.attributes.containsKey("password") == true) {
var username = instance?.attributes["username"] as String;
var password =
DC.stringToBytes(instance?.attributes["password"] as String);
return connect(
method: AuthenticationMethod.Credentials,
domain: domain,
hostname: address,
port: port,
passwordOrToken: password,
username: username,
useWebsocket: ws,
secureWebSocket: secure);
} else if (instance?.attributes.containsKey("token") == true) {
var token = DC.stringToBytes(instance?.attributes["token"] ?? "");
var tokenIndex = instance?.attributes["tokenIndex"] ?? 0;
return connect(
method: AuthenticationMethod.Credentials,
domain: domain,
hostname: address,
port: port,
passwordOrToken: token,
tokenIndex: tokenIndex,
useWebsocket: ws,
secureWebSocket: secure);
} else {
return connect(
method: AuthenticationMethod.None,
hostname: address,
port: port,
domain: domain,
useWebsocket: ws,
secureWebSocket: secure);
}
}
return new AsyncReply<bool>.ready(true);
}