问题标签 [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 投票
1 回答
20678 浏览

java - 何时使用事件总线?

我正在为一个新的 Java Web 应用程序设计后端,并试图决定是否使用事件总线;特别是番石榴EventBus

大多数服务器端请求将是同步的:也就是说,用户正在请求数据并且需要在几秒钟内得到响应。但是,也有相当多的请求可以是异步的,并且在客户端是“一劳永逸”的。只要它们最终得到处理,如果需要 2 秒或 2 小时来处理,客户可能不太在意。

对于这些异步请求,我计划让侦听映射 URL 的 servlet 将请求发布到队列。然后,消费者将出列每个请求并将其路由到适当的处理程序。这是EventBus可能或可能不会发挥作用的地方。将请求路由到正确的处理程序的业务逻辑非常复杂。通常骆驼路线将是完美的解决方案。在我的用例中,我想知道是否可以将一堆“处理器”(事件处理程序)连接到同一个事件总线,然后让每个处理器相互触发和接收事件,直到最终结果是产生。

我想说我已经探索过使用 Apache Camel,并且我相信 Camel 是完成这项工作的正确工具。可悲的是,由于这个问题范围之外的原因,我不会使用它。所以我开始想出类似骆驼的解决方案,这就是我如何到达 Guava 的EventBus. 但它可能不是一个合适的替代品。

我想我正在寻找Event Bus模式解决的问题分类,然后我需要确定它是否与我的用例匹配。

0 投票
2 回答
1173 浏览

gwt - 如何通过事件总线告诉 GWT 单元小部件数据已更改?

我有一个 GWT 单元树,用于显示来自 CMS 的文件结构。我正在使用AsyncDataProvider从我创建的自定义 RPC 类加载数据。我还有一个 Web Socket 系统,它将广播来自也在系统中工作的其他客户端的事件(文件创建、重命名、移动、删除等)。

我想要解决的是当我收到这些事件之一时,我如何正确更新我的细胞树?

我想这个问题类似于在页面上有两个我的 Cell Tree 实例,它们呈现相同的服务器端数据,并希望确保当用户更新一个时,另一个也更新,通过使用EventBus.

我觉得这应该很简单,但我现在已经花了大约 6 个小时,没有任何进展。我的代码包括在下面:

注意:我没有使用 RequestFactory,即使它看起来像是我的自定义 RPC 框架。此外, FileEntity 只是一个文件的简单表示,其名称可由getName().

0 投票
3 回答
1780 浏览

java - GWT:如何在两个模块之间共享一个 java 对象(即:EventBus)

我正在构建一个大型应用程序,我想将其拆分为几个模块,例如用于初始化的核心模块、用户管理等……、客户模块、生产模块等……</p>

我想将它拆分为多个 GWT 模块(不使用 GWT 拆分技术)并共享一个 EventBus 来广播一些事件,例如 LoginEvent、LogoutEvent。我不想使用代码拆分技术,因为我想减少编译时间并只重新编译我修改过的模块。这还允许通过注释 HTML 主机页面中的脚本标记来启用或禁用模块。

我使用 JSNI 编写了以下代码:

但是在浏览器中执行时,我在 Firebug 中有以下异常:

我还复制了实现/接口客户事件的 MyEvent 和 MyEventHandler 类。

PS:我也知道包含注释其他模块引用以避免编译它的技术。

0 投票
2 回答
738 浏览

android - 应用程序崩溃说不包含库,即使它是

在我对其进行 git reset 之前,我的 Android 应用程序似乎一直运行良好。现在它不断崩溃并说我正在使用的库不存在。

这是我得到的崩溃日志

我也尝试过恢复最后一个已知的工作副本。会不会是我机器的问题?

0 投票
2 回答
9583 浏览

scala - Akka 事件总线教程

关于如何在akka中使用事件总线有什么好的教程/解释吗?我已经阅读了 Akka 文档,但我发现很难理解如何使用事件总线

0 投票
0 回答
1375 浏览

java - 哪个 EventBus 更适合新的桌面应用程序?

几年来,我们org.bushe.swing.event.EventBus主要用于摆动桌面应用程序。API 非常一致,并且易于使用。但是现在已经出现了新的要求,并且它希望一些 EventSubscriber 应该比其他的更受青睐,因为它们是同步通知的。因此,这些订阅者需要某种优先级因素。

扩展 EventBus 以优先考虑 EventSubscribers 应该不是什么大问题,但是由于org.bushe.swing.event.EventBus已经过时,我不确定是否最好更改 EventBus 实现。

org.bushe.swing.event.EventBus本身为 GWT 推荐了像GWT Eventbus这样的项目。我不确定这是否也是摆动应用程序的好方法。您通常使用哪些 EventBus 实现?您甚至可能知道支持订阅者优先级的简单实现吗?

0 投票
1 回答
1313 浏览

java - 具有空引用的 Guava/Otto EventBus

假设以下场景具有 A、B 类和事件总线的一个实例(它可以是Guava 事件总线,由 Google提供,也可以是Otto 事件总线,由 Squ.re 提供)

现在,如果我运行它(仅用 Otto 测试)onSomething被调用 2 次。

¿ 事件总线是否会保留对“ a”的引用,直到调用取消注册?

更重要的是

¿ 如果由于某种原因我无法确定 ' a' 为空的时刻,那么事件总线将永远持有对该对象的无用引用(内存泄漏)?

0 投票
1 回答
142 浏览

events - GWT - EventBus 为不再存在的对象调用事件

我在一个大程序中遇到了这个问题,所以我写了一个小样本来测试它。我希望有人可以向我解释这一点。

这是代码:

之后我执行以下操作:

现在按照我的逻辑,这个输出应该是一个单一的“测试”;事实上,它是两个“测试”,处理程序被调用了两次。我真的不明白为什么会这样;c1 是单个对象,所以不应该只调用一次处理程序吗?

0 投票
1 回答
271 浏览

gwt - EventBus 可以在 GWTP 中调用分离的 Presenter(不是嵌套的 Presenter)吗?

好的,这是我的问题。我有 2 位演示者:FirstPresenter(例如:abc.com#first)和 SecondPresenter(例如:abc.com#second)。SecondPresenter 上有一个按钮,当用户单击该按钮时,FirstPresenter 将弹出一条消息。

所以,这就是我所做的,我使用eClipse创建了一个事件名称MyEvent,eclipse生成了一个类MyEvent.java

在 SecondPresenter 上,我得到:

在 FirstPresenter 上,我得到:

如果 FirstPresenter 是嵌入在 SecondPresenter 中的嵌套演示者,那么上面的代码可以正常工作。但是如果他们是 2 个独立的 Presenter,那么上面的代码就不起作用了。

为什么?我检查了谷歌文档,他们只是说 EventBus 可以调用 Presenter,他们没有说它必须是嵌套的 Presenter,所以我假设 EventBus 可以调用任何单独的 Presenter。

我改为private EventBuspublic EventBus但它没有帮助。

我错过了什么?

编辑:

我稍微改变了我的代码,它部分工作。我不确定我做对了,因为它仍然存在一些问题。

好的,在 FirstPresenter 我实现了 MyHandler & Override onMy 方法

当我单击 SecondPresenter 上的按钮(Webbrowser 的第二个选项卡上的页面)时,我看到第二个选项卡上弹出消息(即浏览器没有使第一个选项卡成为焦点),但是当我单击 FirstPresenter (第一个选项卡上的页面)我没有看到Label("test")

为什么它可以调用 Window.alert 但没有将 Label 添加到 FirstPresenter?

另外,如何让浏览器将焦点设置在 FirstPresenter 上(即显示第一个选项卡)?

我错过了什么吗?

0 投票
1 回答
125 浏览

java - 为什么 CurrentUser 在 gwtp-sample-tab 中实现 HasHandlers?

我正在自学 GWT 和 GWTP。我正在尝试设置我的日志记录服务,并且我希望在显示任何依赖它的 Presenter 之前从服务器检索我的 currentUser 对象。

但是,我遇到了一个问题,我认为这与我不明白为什么在 gwtp-sample-tab 示例中,类CurrentUser 实现 HasHandlers

有人可以向我解释吗?编辑一个更精确的问题:我想知道为什么在示例的上下文中,CurrentUser 需要实现 HasHandlers。这在应用程序中满足什么功能?

非常感谢,马努

PS。我是 StackOverflow 的新手,所以如果您认为我的问题有问题,请告诉我。