public Unit TellSystem(SystemMessage message, ProcessId sender) { var dto = RemoteMessageDTO.Create(message, ProcessId, sender, Message.Type.System, message.Tag); var clientsReached = Cluster.PublishToChannel(ActorInboxCommon.ClusterSystemInboxNotifyKey(ProcessId), dto); return(unit); }
Unit Tell(object message, ProcessId sender, string inbox, Message.Type type, Message.TagSpec tag) { var dto = RemoteMessageDTO.Create(message, ProcessId, sender, type, tag); // The standard structure for remote js relay paths are "/root/js/{connection-id}/..." var connectionId = ProcessId.Skip(2).Take(1).Name.Value; dto.To = ProcessId.Skip(3).Path; var relayMsg = new OutboundRelayMsg(connectionId, dto, dto.To, sender, dto.RequestId != -1); return(Process.tell(RelayId, relayMsg, sender)); }
public Unit Tell(object message, ProcessId sender, string inbox, Message.Type type, Message.TagSpec tag) { var dto = RemoteMessageDTO.Create(message, ProcessId, sender, type, tag); var inboxKey = ActorInboxCommon.ClusterInboxKey(ProcessId, inbox); var inboxNotifyKey = ActorInboxCommon.ClusterInboxNotifyKey(ProcessId, inbox); Cluster.Enqueue(inboxKey, dto); long clientsReached = Cluster.PublishToChannel(inboxNotifyKey, dto.MessageId); return(unit); }