internal static IActorDispatch GetJsDispatcher(ProcessId pid) { switch (pid.Count()) { case 0: case 1: return(new ActorDispatchNotExist(pid)); // /root/js <-- relay case 2: return(GetDispatcher(pid.Skip(1), rootItem, pid)); // /root/js/{connection id} <-- relay case 3: return(GetDispatcher(pid.Skip(1), rootItem, pid)); // /root/js/{connection id}/js-root/.. --> back to JS default: return(new ActorDispatchJS(pid, pid.Take(3), rootItem.Actor.Children["js"])); } }