如果我想订阅远程系统中事件流上发布的消息,建议的方法是什么?
所以例如在一个系统中我有代码。
case class MyClass(x: Int)
val es = context.system.eventStream
es.publish(MyClass(3))
在这个系统中我只想到
context.system.eventStream.subscribe(self, classOf[MyClass])
但是如何在远程系统中执行此操作?
答案 0 :(得分:0)
事件流是本地设施,这意味着它不会将事件分发到群集环境中的其他节点(除非您明确地将Remote Actor订阅到流)。如果您需要在Akka群集中广播事件,没有明确了解您的收件人(即获取他们的ActorRef),您可能需要查看:Distributed Publish Subscribe in Cluster。
如果您可以获取远程actor的 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
var initialViewController: UIViewController!
if Auth.auth().currentUser == nil {
initialViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "MainViewController")//replace your mainviewcontroller identifier
} else {
initialViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "LoginViewController")//replace your loginviewcontroller identifier
}
window?.rootViewController = initialViewController
window?.makeKeyAndVisible()
return true
}
,只需使用ActorRef
将该actor订阅到事件流:
ActorRef
否则,请使用分布式发布订阅功能。