sendGroupMessage method

Future<void> sendGroupMessage({
  1. required String message,
  2. required List<HMSRole> hmsRolesTo,
  3. String type = "chat",
  4. HMSActionResultListener? hmsActionResultListener,
})

Sends a message to all the peers of a role defined in hmsRolesTo.

Parameters:

hmsRolesTo - All peers currently in that role will receive the message.

message - contains the content of the message.

type - The type of the message, default is chat.

hmsActionResultListener - It contain informs about whether the message was successfully sent, or the kind of error if not.

Refer sendGroupMessage guide here

Implementation

Future<void> sendGroupMessage(
    {required String message,
    required List<HMSRole> hmsRolesTo,
    String type = "chat",
    HMSActionResultListener? hmsActionResultListener}) async {
  List<String> rolesMap = [];
  hmsRolesTo.forEach((role) => rolesMap.add(role.name));

  var arguments = {"message": message, "type": type, "roles": rolesMap};
  var result = await PlatformService.invokeMethod(
      PlatformMethod.sendGroupMessage,
      arguments: arguments);

  if (hmsActionResultListener != null) {
    if (result != null && result["error"] != null) {
      hmsActionResultListener.onException(
          methodType: HMSActionResultListenerMethod.sendGroupMessage,
          arguments: {"message": message, "type": type, "roles": hmsRolesTo},
          hmsException: HMSException.fromMap(result["error"]));
    } else {
      hmsActionResultListener.onSuccess(
          methodType: HMSActionResultListenerMethod.sendGroupMessage,
          arguments: _hmsMessageToMap(result));
    }
  }
}