code: @Override
  	public void receiveEvent(Tree message) {
  
  		// Verify protocol version
  		if (checkVersion) {
  			String ver = message.get("ver", "unknown");
  			if (!ServiceBroker.PROTOCOL_VERSION.equals(ver)) {
  				logger.warn("Invalid protocol version (" + ver + ")!");
  				return;
  			}
  		}
  
  		// Get event property
  		String name = message.get("event", (String) null);
  		if (name == null || name.isEmpty()) {
  			logger.warn("Missing \"event\" property!");
  			return;
  		}
  
  		// Get data
  		Tree payload = message.get("data");
  
  		// Process events in Moleculer V2 style
  		Tree groupArray = message.get("groups");
  		Groups groups = null;
  		if (groupArray != null) {
  			int size = groupArray.size();
  			if (size > 0) {
  				String[] array = new String[groupArray.size()];
  				int i = 0;
  				for (Tree group : groupArray) {
  					array[i++] = group.asString();
  				}
  				groups = Groups.of(array);
  			}
  		}
  
  		// Emit or broadcast?
  		if (message.get("broadcast", true)) {
  
  			// Broadcast
  			broadcast(name, payload, groups, true);
  
  		} else {
  
  			// Emit
  			emit(name, payload, groups, true);
  		}
  	}
docs: --- RECEIVE EVENT FROM REMOTE SERVICE ---