public async Task <IEnumerable <string> > JoinGroupAsync(string groupName) { // Get clients in ths group, if members count less equals 4 then add him. var clientsInGroup = await _clusterClient.GetGroup <SampleHub>(groupName).GetConnectionIdsAsync(); // Do not do this, just identical above. We can also get the members from another hub in this way. clientsInGroup = await _clusterClient.GetGroup(groupName, typeof(SampleHub).GUID).GetConnectionIdsAsync(); if (clientsInGroup.Count <= 4) { await Groups.AddToGroupAsync(Context.ConnectionId, groupName); // Returns the current group members. return(clientsInGroup); } else { return(Enumerable.Empty <string>()); } }
public override Task SendGroupAsync(string groupName, string methodName, object[] args, CancellationToken cancellationToken = default) { return(_clusterClient.GetGroup(groupName, _hubTypeId).SendClientSetAsync(methodName, args)); }