问题标签 [event-bus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5296 浏览

guava - 为什么 Guava 发出错误“缺少 > 注释方法的事件处理程序”?

尝试注销时,我在我的一个课程中遇到以下错误。

java.lang.IllegalArgumentException:缺少注释方法的事件处理程序。[DerivedClass] 是否已注册?”在 com.google.common.eventbus.EventBus.unregister(EventBus.java:227)

类调用unregister(this)具有公共@Subscribe注释方法。

0 投票
1 回答
650 浏览

multithreading - Scala:Akka - Actorsystem 的多个事件总线或具有优先级事件?

我有一个 ActorSystem,它的 eventStream 有几个订阅者。应用程序每秒可能产生数千条消息,其中一些消息比其他消息更重要。所以他们应该首先被处理。

我发现每个 ActorSystem 都附加了一个 eventStream,因此我似乎需要用两个(或更多)ActorSystems 注册同一个 Actor 类,以便在专用 eventStream 中接收重要消息。

这是首选方法,还是此任务有一些技巧?分类器是否也可以以某种方式调整消息优先级?

0 投票
2 回答
913 浏览

java - 如何在不同的 web 应用中与 EventBus 共享事件?

我正在使用tomcat。我想把番石榴罐和我自己的罐子放在 tomcat/lib 中。我的 jar 有一个工厂来获取事件总线,并且所有 webapps 都可以访问该工厂。我不知道如何在 webapp1 中注册一个侦听器并从 webapp2 发布一个事件。我在 webapp2 中使用的对象在 webapp1 中不存在,我只能共享 java 对象,如字符串、字符串映射等,但不能共享来自其他 webapp 的对象。

一些想法?

0 投票
1 回答
299 浏览

gwt - GWT:注入的 PlaceManager 为空

在下面的代码中,我PlaceManager在第 4 行注入 a,并尝试placeManager.revealPlace()在最后一行使用。但是,在那一刻我得到一个空异常。

此外,如果我if(placeManager==null){ Window.alert("Hello"); }在该行之前添加一个,则会显示警报。

任何想法为什么会发生这种情况?也许是因为它是在FieldUpdater处理程序中执行的?

谢谢

0 投票
1 回答
647 浏览

gwt - GWT 活动:如何使用活动、地点、事件总线和 uibinder

我是 GWT 的新手,我想知道如何使用 Activity、Place、EventBus 和 UIbinder。我的应用程序的布局是这样的:

小部件 1:

在“widget1.headerPanel”中有一个导航,它控制要在“widget1.centerPanel”中显示的小部件。必须在“widget1.centerPanel”中显示的小部件是“widget2.0”和“widget2.1”。

小部件2.0

小部件2.1

在“widget2.0.topPanel”中,我有导航控制哪个小部件将显示在“widget2.0.centerPanel”中必须显示在“widget2.centerPanel”中的小部件是“widget3.0”和“widget3.1” ”。

小部件3.0

小部件3.1

我的问题是如何处理“onPlaceChangeEvent”?

例如,如果 url 是 mydomain.com/myapp.html#home:content1
应用程序必须显示小部件 1、小部件 2.0 和小部件 3.0

如果 url 是 mydomain.com/myapp.html#home:content2
应用程序必须显示 widget1、widget 2.0 和 widget 3.1

如果 url 是 mydomain.com/myapp.html#settings
应用程序必须显示 widget1 和 widget 2.1

我想知道两种变体之间:

  1. 创建 2 个 ActivityManager。一个用于widget1.navigation 的活动,一个用于widget2.navigation 的活动。但是如果 widget2 是在 widget 1 之前创建的,会发生什么?
  2. 创建一个创建几个视图的活动。

代码:示例

这种情况下的最佳做法是什么?

0 投票
1 回答
669 浏览

distributed - 任何有助于构建集群、分布式事件总线库的库?

是否有任何 Java 库允许构建集群(因此,分布式)事件总线?

我不是在谈论依赖于诸如 ZeroMQ/RabbitMQ/Redis 之类的外部发布/订阅服务,而是在内部完成所有这些工作的 Java 库(即保持与其他机器的连接、同步数据和管理停机时间等)。

谢谢

0 投票
2 回答
1527 浏览

gwt - 可以使用事件总线在不同的项目或应用程序之间进行通信吗

我正在为我们的内部使用创建一个 gwt 小部件库。每当我的 gwt 小部件中的任何控件发生任何事件时,我都被要求触发一个事件,然后使用我的小部件的应用程序或项目将监听该事件。这个概念似乎类似于我之前用于我的其他 gwt 项目的事件总线,用于在同一页面上不同区域中显示的不同视图之间进行通信。这很好,因为我在整个应用程序中使用相同的事件总线实例。但是现在我将在我的项目中使用事件总线的特定实例,但使用它的应用程序将不会使用相同的实例。我是继续使用它还是有另一种方法可以在不同的应用程序之间触发事件。请帮忙

0 投票
2 回答
2550 浏览

java - GWT - MVP 事件总线。创建多个处理程序

我正在使用我继承的大型应用程序,并且遇到了一些最佳实践问题。

每次用户导航到我们的客户编辑页面时,都会创建一个新的演示者,并设置一个视图。有一个用于客户编辑的主演示者和一个主视图。主视图中也有由主演示者的子演示者使用的子视图。在子演示者中,我在事件总线上注册事件处理程序。

我遇到的问题是,当第二次导航到联系人编辑器时,会再次创建演示者,并再次注册这些事件。现在,当一个事件发生时,它会被处理两次,每个演示者实例一次。

演示者不受变量的约束,但子视图由主视图引用。难道是视图中的这个引用阻止了事件处理程序被删除?我的印象是,如果该对象被垃圾收集,事件处理程序将被删除。如果不是这种情况,我是否应该从事件总线中注销这些事件处理程序?

更新:演示者没有被垃圾收集。如果我可以修改代码以在不再需要这些演示者时删除对这些演示者的所有引用,它们是否会被收集,因此事件处理程序是否会被删除?

0 投票
4 回答
6089 浏览

java - 使用 Spring IoC 在 Guava EventBus 中自动注册 bean

假设我的应用程序中有一个语言更改事件接口(它基于 Vaadin):

而且我有许多 bean 实现了这个用 @Component 注释的接口,因此它们在 Spring IoC 中可用。我还有一个 EventBus bean:

现在,在从 IoC 获取任何 bean 的实例后,我还必须获取 languageSwitcher 的实例并在其中注册新创建的 bean:

为了接收这个事件。是否有可能以某种方式告诉 IoC 我想在每个实现 ILanguageChangeListener 的新 bean 上调用 languageSwitcher bean 的 register 方法?

0 投票
4 回答
17915 浏览

android - Android中的greenrobot EventBus发布事件

通过使用 EventBus,我需要在一个 Activity 中发布一个事件(MyEvent)并在 Android 中的另一个 Activity 中接收该事件。我尝试了 greenrobot EventBus 性能测试项目,但不知道该怎么做。

我在ActivitySubscriber中尝试过

并尝试在ActivityReceiver中接收事件

但我无法收到该事件。谁能让我知道我在哪里做错了?