我想知道是否可以从另一个项目向现有的Actor发送消息?
现有演员&允许的消息:
org.w.h.i
然而,我目前的项目与上述不同,例如ActorSelection
。
假设我知道actorSystem名称,url以及构建org.x.y.ExistActor
org.x.y.ExistActor
所需的所有内容,那么是否可以发送消息并获得结果?
请注意for each suit
for each value
load "card_" + suit + value + ".jpg"
允许的消息及其本身都是私有的,如果我发送消息,我会制作允许消息的本地副本。
答案 0 :(得分:1)
是的,如果两个系统都设置为远程处理,您可以向任何知道使用ActorSelection
的路径的演员发送消息。
但是,除非您的远程actor系统能够发送您的actor将响应的消息,否则解决它(如您的示例中)将毫无意义。
答案 1 :(得分:1)
首先,应该在两个JVM上启用Akka Remoting。成功获得ActorSelection
后,您可以向该演员发送消息。演员是否被定义为private class
并不重要。重要的是它的运行和可访问性。
现在问题是演员是否会接受你发送的消息,以及你是否可以构建这些消息,因为它们在你的情况下是私有的。
这一切都取决于为Akka Remoting配置的序列化程序。有关配置选项,请参阅these docs,并检查远程项目是否使用不依赖于Java序列化或任何特定于类版本的序列化的序列化程序。
默认情况下,Akka Remoting使用Protocol Buffers,这样您就可以构建完全相同类型和形状的消息并成功发送。