我正在为我们的内部使用创建一个gwt小部件库。我被要求在我的gwt小部件中的任何控件发生任何事件时触发事件,然后由应用程序或正在使用我的小部件的项目进行监听。这个概念与我之前用于其他gwt项目的事件总线类似,用于在同一页面上的不同区域中显示的不同视图之间进行通信。这很好,因为我在应用程序中使用了相同的事件总线实例。但是现在我将在我的项目中使用事件总线的特定实例,但使用它的应用程序将不会使用同一个实例。我会继续使用它还是有另一种方法来在不同的应用程序之间激发事件。请帮忙可以使用事件总线在不同的项目或应用程序之间进行通信
1
A
回答
0
RabbitMQ救援......这是这类问题的典型解决方案。
它的建立为软件总线,就像一个硬件总线是计算机系统。
我特别喜欢http://manning.com/videla/这本书。它详细介绍了该方法,概述了源代码及其背后的架构。非常实用。
3
首先,你称之为“不同的应用程序”是什么?他们会在同一浏览器中运行吗?他们会部署在同一台服务器上吗?
如果您的应用程序不共享公共EventBus
,则不能使用EventBus
进行通信。
如果您的应用程序在相同的选项卡中运行,您可以将EventBus
存储在一个静态变量中,并从同一选项卡中的其他应用程序中检索它。
如果您的应用程序运行在同一浏览器中(在不同的选项卡上),则可以使用LocalStorage
进行通信。你可以看看:
- Inter-tab communication using local storage
- Using HTML5 Web Storage for Interprocess Communication
- Sharing data across windows using localStorage。
GWT在com.google.gwt.storage.client.Storage
中提供了LocalStorage
(和SessionStorage
)的实现。
如果它们不在同一个浏览器中运行,则必须执行往返服务器以从一个应用程序到另一个应用程序进行通信(使用RPC发送消息,并使用RPC轮询来检查新的消息 - 或使用服务器推送技术,请参见GWTEventService和ServerPushFAQ)。
如果它们未部署在同一台服务器上,则必须往返服务器并在服务器之间进行通信(使用套接字,RPC,Web服务...)。
相关问题
- 1. NSNotificationCenter可以在不同的应用程序之间进行通信吗?
- 2. 线程之间可以通过LINX通信进行通信吗?
- 3. 可以在两个应用程序之间使用SNMP进行通信
- 4. 在Swing应用程序中的组件之间进行通信
- 5. 通过win消息在应用程序之间进行通信
- 6. 通过网络在应用程序之间进行通信
- 7. 从后台线程通过Greenrobot事件总线进行通信
- 8. 如何在两个不同的android应用程序之间进行通信
- 9. 我们可以使用EventObject在不同的JVM之间进行通信吗?
- 10. 使用队列在D中的线程之间进行通信
- 11. 我可以使用事件在应用程序之间发送信号吗?
- 12. 如何在Android上的应用程序之间进行通信
- 13. C++如何在应用程序的DLL之间进行通信?
- 14. 使用事件在主干模型之间进行通信
- 15. 如何在python和mac应用程序之间进行通信?
- 16. 如何在iOS应用程序和php之间进行通信?
- 17. 如何在Windows和主应用程序之间进行通信?
- 18. 如何在两个应用程序之间进行通信?
- 19. WPF +在多个应用程序实例之间进行通信
- 20. 在Java SE和Java EE应用程序之间进行通信
- 21. 如何在Windows应用程序和Silverlight之间进行通信?
- 22. 在两个应用程序之间进行通信web
- 23. 使用信号在两个不同的应用程序之间进行通信R
- 24. 使用mvp4g中的事件总线进行模块间通信gwt
- 25. 有没有一种方法可以在C++应用程序和C#应用程序之间进行通信?
- 26. 我可以使用JSON在用不同编程语言实现的过程之间进行通信吗?
- 27. 在不同计算机上的进程之间进行通信
- 28. 在同一台机器上的ASP.NET应用程序之间进行通信
- 29. 多个nodejs应用程序之间的进程间通信
- 30. iPhone应用程序之间的进程间通信
不幸的是,RabbitMQ在GWT中不起作用(GWT代码实际上是在JS中编译并在浏览器上运行,因此只有Java类和功能的子集可用)。 –