pushClusterSession method

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

推送消息到集群的某个session,dispatcher为null时,对该集群的全部节点进行遍历发送

Implementation

void pushClusterSession(String cluster, {required String route, Map<String, dynamic>? data, required String ucid, ClusterClientDispatcher? dispatcher}) {
  final clientList = _clusterClientMap[cluster];
  if (clientList == null) return;
  final packet = EasyPacket.pushsign(_config.secret, route: route, data: data, ucid: ucid);
  if (dispatcher != null) {
    final client = clientList[dispatcher(cluster, ucid, data)];
    logDebug(['pushClusterSession >>>>>>', cluster, client.websocketUrl, packet]);
    client.websocketRequest(EasyConstant.routeInnerP2P, data: packet.toJson(), waitCompleter: false);
  } else {
    for (var client in clientList) {
      logDebug(['pushClusterSession >>>>>>', cluster, client.websocketUrl, packet]);
      client.websocketRequest(EasyConstant.routeInnerP2P, data: packet.toJson(), waitCompleter: false);
    }
  }
}