В настоящее время я работаю над проектом, который должен взаимодействовать с Java с воздуха без использования сервера, такого как Tomcat. Для этого я нашел и использую Flerry.
Взаимодействие между Java и Air не проблема, если я пытаюсь отправить сообщение из класса, который я изначально создал из Air.
То, что я пытаюсь сделать, это подписать сообщения из класса сообщений в Java и использовать этот класс для отправки информации и ошибок в Air из Java.
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 и перехватывать их в эфире?