cmd method
void
cmd(
- String cmdStr, {
- dynamic params = const {},
- int? id,
- MessageCallback? callback,
- bool isWrapperCmd = false,
override
Implementation
@override
void cmd(
String cmdStr, {
params = const {},
int? id,
MessageCallback? callback,
bool isWrapperCmd = false,
}) {
var cmdId = isWrapperCmd ? iW++ : id ?? i++;
try {
if (callback != null) {
callbacks[cmdId] = callback;
}
final vChannel = isWrapperCmd ? wrapperChannel : channel;
vChannel!.sink.add(
json.encode({
'cmd': cmdStr,
'params': params,
'id': cmdId,
}),
);
} catch (e) {
if ((!isWrapperCmd && channel == null) ||
(isWrapperCmd && wrapperChannel == null)) {
throw 'Initalize ZeroNet Api First before calling any method';
}
}
if (callback != null) {
(isWrapperCmd ? wrapperSubscription : subscription)?.onData((message) {
var msg = json.decode(message);
var id = msg['to'];
if (msg['cmd'] == 'confirm') {
id = msg['id'];
}
callbacks[id]?.call(message);
callbacks.remove(id);
onEventMessage?.call(message);
});
}
}