callRemote method

void callRemote(
  1. String cluster, {
  2. required String route,
  3. Map<String, dynamic>? data,
  4. String? ucid,
  5. ClusterClientDispatcher? dispatcher,
})

集群节点间远程路由异步调用,dispatcher为null时,从该集群的全部节点中随机选择一个节点

Implementation

void callRemote(String cluster, {required String route, Map<String, dynamic>? data, String? ucid, ClusterClientDispatcher? dispatcher}) {
  final clientList = _clusterClientMap[cluster];
  if (clientList == null) return;
  final packet = EasyPacket.pushsign(_config.secret, route: route, data: data, ucid: ucid);
  final client = clientList[dispatcher == null ? Random().nextInt(clientList.length) : dispatcher(cluster, ucid, data)];
  logDebug(['callRemote >>>>>>', cluster, client.websocketUrl, packet]);
  client.websocketRequest(EasyConstant.routeInnerRMC, data: packet.toJson(), waitCompleter: false);
}