【问题标题】:Messaging between Java and Flex with Flerry使用 Flerry 在 Java 和 Flex 之间进行消息传递
【发布时间】:2011-07-22 06:44:16
【问题描述】:

我目前正在开发一个项目,该项目需要在不使用像 Tomcat 这样的服务器的情况下从空中与 java 进行通信。为此,我找到并使用了 Flerry。

只要我尝试从我最初从 Air 实例化的类发送消息,Java 和 Air 之间的通信就没有问题。

我尝试做的是对来自 java 中的消息类的消息下标,并使用该类将信息和错误从 Java 发送到 Air。

MessageController.java:

public class MessageController 
{

    public MessageController()
    {

    }

    public static void sendErrorMessage(String errorMessage)
    {
        NativeObject.sendMessage(errorMessage, "error");
    }

    public static void sendInfoMessage(String infoMessage)
    {
        NativeObject.sendMessage(infoMessage, "info");
    }
}   

在 Air 中,我在消息传递类上创建一个 NativeObject 并订阅消息:

var messageController:NativeObject = new NativeObject();
messageController.source = "controller.MessageController" ;
messageController.singleton = true;
messageController.debug = false;
messageController.addEventListener(FaultEvent.FAULT, onFileControllerFault, false, 0, true);

messageController.subscribe("info", infoMessageHandler);
messageController.subscribe("error", errorMessageHandler);

如您所料,这行不通。 似乎我只能从我直接订阅的类中发送消息,例如,如果我这样做:

messageController.start();

在我的 MessageController.java 中我放了这个:

public void start()
{
NativeObject.sendMessage("test message", "info");
}

infoMessageHandler 收到一条包含测试消息的消息,它应该这样做。

如何从 Java 中的任何类发送消息并在 Air 端捕获它们?

【问题讨论】:

  • 您正在创建一个 AIR 应用程序,对吧?看起来 Flerry 使用了 Adob​​e AIR 的 NativeProcess 功能;这在基于 Flex 的网络应用程序中不可用。
  • Flextras 所说的。这就是为什么您使用基于 Web 的技术,例如 tomcat(但实际上,这只是用于部署您的服务器)与前端进行通信。
  • @Flextras 我正在创建一个 AIR 应用程序。我编辑了帖子。

标签: java apache-flex messaging flex4.5


【解决方案1】:

我还不确定我是否完全理解了这个问题,但是您是否有理由不能简单地通过 Java“通信”类发送和接收所有消息?如果这行得通,我只需在 Java 接口/通信类中设置公共方法并完成它。

(自从我研究 Flerry 的工作原理以来已经有一段时间了,所以我想不起来指出您所看到的行为的可能原因。)此外,Flerry 是开源的,而且根本不是很大.如果您真的想知道为什么它会以某种方式运行,我敢打赌您可以通过查看源来弄清楚。 (我保证不需要 6 个月的时间来学习一些 Spring 或 Hibernate 代码库,甚至 BlazeDS。)

我确实在一个小应用程序中使用了 Flerry,但现在我想起来了,我只有一个类可以将任何东西分派给 Flex!但我觉得您可能需要以不同的方式描述您面临的问题,因为这对我来说听起来像是预期的行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 2020-01-23
    • 1970-01-01
    相关资源
    最近更新 更多