问题标签 [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.
gwt - 父演示者未处理我触发的 GWT 事件
我有一个子演示者(添加到插槽中的父级),它在被调用eventBus
时通过(在条件下)触发事件:onBind()
在父级上,我用onBind()
这样的方法处理事件:
我也在父级中尝试过这个:addRegisteredHandler(LoggedOutEvent.TYPE, this)
而且 addVisibleHandler(...)
,我MyEventHandler
在父级演示者中实现了接口,但它不处理触发的事件。
我做错了吗?我还注意到,当我将处理过程移至onReveal()
我的父母演示者的方法时,它起作用了,但是两次!!
android - EventBus, register and registerSticky method
I use greenrobot EventBus library to send data between two fragments in my android app and I want to know what is the diffeence between register(Object b)
method and registerSticky(Object object)
method?
java - 为什么 Guava 事件总线(模块)不可扩展?
在最新版本(以及以前的版本)中,Guava eventbus 模块不可扩展。目前,它使用订阅者和SubscriberRegistry
内部来决定调度事件。但是这些类是包私有的,因此不可扩展。如果Subscriber
和SubscriberRegistry
被制作为公共接口,它将让其他人在决定Subscriber
.
让我解释一下我的用例,以便在这里更有意义。可以说我有一个层次结构的类,它们有一组共同的事件(创建/更新/删除)。并且有听众为这些类中的一个或多个收听这些事件中的一个或多个。为了能够使用EventBus
模型,现在,我必须为每种类型的类创建三个事件类。
如果我有class A
andclass B extends A
和class C extends B
and class D extends A
,则可以创建/更新/删除 A、B、C 和 D 中的每一个。然后我必须为所有课程设置ACreatedEvent
, AUpdatedEvent
, ADeletedEvent
, BCreatedEvent
, BUpdatedEvent
, BDeletedEvent
, 等等。(我知道如果发布,假设等等,订阅ACreatedEvent
将被通知。但是可能有听众对子类对象事件而不是超类对象事件特别感兴趣。所以,这个臃肿的事件层次结构是必要的为听众提供灵活性)。BCreatedEvent
BCreatedEvent extends ACreatedEvent
这迫使我创建了很多非常笨拙的事件类。我的想法是,要引入另一个注释,可以说,@Requires(classTypes={B.class})
应该与@Subscribe
. 然后可以在构造Subscriber
/时使用这种辅助/关联注释SubscriberRegistry
(可能使用 a Predicate<Class>
)。在这种情况下,听众可以简单地拥有
并且我只需要Event
为基类(ACreatedEvent
, AUpdatedEvent
, ADeletedEvent
)提供三个类,并且对子类事件特别感兴趣的侦听器可以具有@Requires
注释。
但问题是,Guava 没有公开这些核心类。
所以,我的问题是:
- 为什么 Guava 想要订阅者的逻辑私有?
- 我正在开发一个商业产品。我可以将 eventbus 模块复制到我的代码库中并提供我自己的实现(一个新的实现而不更改现有的实现)
Subscriber
并SubscriberRegistry
更改EventBus
使用我的SubscriberRegistry
类吗?(不更改其余类及其版权声明)这会违反 Apache License 2.0 吗?
[PS:对不起这个长长的问题。@Requires
只是一个例子。这个问题的想法是可能的可扩展行为@Subscribe
]
javascript - SAPUI5 EventBus:防止堆叠相同的订阅
当我点击一个按钮时,我想订阅一个事件
我在整个代码中都订阅了“sChannelFoo”和 sIdBar。有什么好的解决方案可以确保我只用这个按钮订阅这个事件一次,即使我多次点击我的按钮?
如果我有 1000 个其他按钮,我希望它们也能够只订阅一次“sChannelFoo”和“sIdBar”。其他 1000 个按钮可能具有相同或不同的功能。
java - verticle类外部的vertx访问事件总线
我正在玩 vert.x 事件总线,在最简单的示例中一切正常。
但是,我想将消息发送到 Verticle 类之外的 vert.x 事件总线。
如何从 Verticle 类外部访问事件总线?
可以使用 Guice 来提供事件总线吗?
例如:
现在我可以在此类的构造函数中提供事件总线本身并保留对它的引用。但这似乎有点麻烦:
android - 我的 Android 应用程序中用于标准线程的事件总线
我的android应用程序中有几个线程(java.lang.Thread)一直在做特殊处理。目前我使用一些队列(ArrayBlockingQueue)在这些线程之间进行通信,我想通过替换事件总线来简化这种通信。
例如,我检查了 Google Guava 事件总线。我的使用上下文可以吗?还是有另一个库可以做到这一点?
Ps:我的Android应用没有UI,只是一些线程做一些特定的处理。
非常感谢你们 !
websocket - Vertx SocketJS 在服务器繁忙几秒钟后断开连接
需要一些帮助来了解断开连接发生的位置(SocketJS、Vertx)以及如何配置超时。
我正在创建SockJSServer以及创建 eventBus 桥。我观察到的问题是 WebSocket 连接频繁断开。查看 websocket 帧,我每 5 秒看到一次 ping 和每 1/2 秒配置的心跳(似乎生效)。但是,一旦心跳延迟更长的时间,那么 5 秒就会断开连接,消息 c[3000,'Go away'] 会出现。正如观察到的那样,当服务器很忙(在单独的线程上做其他事情)时会发生这种情况。
我搜索了 Vertx 文档并查看了 vertx 代码,发现配置参数很少(在版本和文档中似乎有所不同)。
可以肯定的是,我尝试了不同的配置,但似乎没有任何影响。在这一点上,我想我已经到了死墙,需要一些帮助。
Vertx 版本 2.1P3
服务器片段
客户端代码:
java - EventBus 和 Swing JFrame 垃圾收集?
我正在重构一个 Swing 应用程序以大量使用 Guava 的 EventBus。Swing 应用程序基本上运行一个决策过程,在 JFrame 中显示大量结果集合,然后在 JFrame 关闭后处理。现在它还订阅了一个 EventBus 来处理用户对数据的操作。
我的问题是这个。我担心 EventBus 可能会在关闭后保存对 JFrame 及其所有内部引用(包括所有模型数据)的引用。添加一个 WindowListener 是否足以从 EventBus 取消订阅它,以便垃圾收集可以释放数据和底层模型?或者这是我不需要担心的事情?
javascript - 基于 Vert.x 的应用程序中从服务器接收到的数据通信到浏览器
我正在开发一个应用程序,它将显示使用 Ver.x 从服务器接收的浏览器上的数据。所以,我有以下模块:
服务器.java:
客户端.js:
因此,我想在客户端从服务器接收到的浏览器上显示数据。这有什么可能?如何在客户端从服务器接收到的数据逐渐显示在浏览器上?我是否必须使用诸如顶点事件总线之类的第三个组件?我需要将它附加到一些 HTML 文件中以显示数据。谢谢