2013-09-16 6 views
1

Я хочу подключиться к агенту, созданному в Main Container, который запускается на компьютере. Предположим, что главный идентификатор CONtainer - [email protected] Как я могу подключиться к агенту внутри этого контейнера и передать данные? Заранее спасибо.Как отправить сообщение агенту в Main Container через http в Jade?

ответ

1

Вам понадобится ContainerController (будь то для основного контейнера или контейнера агента, не имеет значения), который является частью платформы агента, с которой вы связаны.

Простым способом получить это было бы просто создать новый контейнер агента и подключить его к платформе.

import jade.core.Runtime; 
import jade.core.Profile; 
import jade.core.ProfileImpl; 

... 

Runtime myRuntime = Runtime.instance(); 

// prepare the settings for the platform that we're going to connect to 
Profile myProfile = new ProfileImpl(); 
myProfile.setParameter(Profile.MAIN_HOST, "myhost"); 
myProfile.setParameter(Profile.MAIN_PORT, "1099"); 

// create the agent container 
ContainerController myContainer = myRuntime.createAgentContainer(myProfile); 

то, вы можете использовать getAgent() метод ContainerController получить AgentController.

AgentController myAgentController = myContainer.getAgent("agent-local-name"); 

наконец, если вы хотите передать данные Агента, вы можете сделать это с помощью O2A (Object 2 Агент) сообщения. Это в основном позволяет передавать любой объект агенту через контроллер агента.

Object myObject = "Real-Object-Would-Go-Here"; 
myAgentController.putO2AObject(myObject, false); 

в агента (предпочтительно в пределах поведения), вы можете слушать для этого объекта, как это:

// start accepting O2A communications 
setEnabledO2ACommunication(true, 0); 
// start monitoring them 
addBehaviour(new CyclicBehaviour(this) { 
    @Override 
    public void action() { 
     // get an object from the O2A mailbox 
     Object myObject = myAgent.getO2AObject(); 

     // if we actually got one 
     if(myObject != null) { 
      // do something with it 
     } else { 
      block(); 
     } 
    } 
}); 

Источники: JADE документация

 Смежные вопросы

  • Нет связанных вопросов^_^