Organize Endpoints using Groups
mainGroups allow you to aggregate endpoints under a common subject prefix. This enables building subject hierarchies.
Creating a Group:
Use service.groups(name, options) or service.groups.add(name) to create a group. You can pass a queue: option to the group to apply it to all its endpoints.
Subject Hierarchy:
When an endpoint is added to a group, its subject becomes group_name.endpoint_name. You can nest groups to create deeper hierarchies like parent.child.endpoint.
# Creating a nested hierarchy
numbers = service.groups.add("numbers")
aggregation = numbers.groups.add("agg")
aggregation.endpoints.add("avg") do |message|
data = JSON.parse(message.data)
avg = data.sum / data.size.to_f
message.respond(avg.to_json)
end
# Requesting the nested endpoint
client.request("numbers.agg.avg", [3, 4, 5, 7].to_json)