Het activeren van een Ajax-applicatie op een Apache server is gemakkelijk met Apache's eigen ActiveMQ, die is een open-source messaging en integratie patronen server. De ActiveMQ server ondersteunt die een verscheidenheid van cross taal clients en protocollen, en het is uitgerust met Enterprise integratie patronen (EIP) en vele andere geavanceerde functies die volledig JMS-1.1 en J2EE 1.4 ondersteunen, Java's meest erkende programmeeromgevingen.
ActiveMQ van Apache.org downloaden en installeren op uw machine. De nieuwste versie van het programma is 5.5.0, vanaf juli 2011. Het ondersteunt Java, C, C++, C#, Ruby, Perl, Python, PHP en Ajax.
Voer de onderstaande code op de server van Apache te installeren AMQ AjaxServlet in uw webapplicaties om steun te verkrijgen voor JMS over Ajax.
...
<servlet-name>AjaxServlet</servlet-name> <servlet-class>org.apache.activemq.web.AjaxServlet</servlet-class>
...
<servlet-name>AjaxServlet</servlet-name> <URL-pattern>/amq/*</URL-pattern>
De servlet biedt direct de vereiste JS-bestanden en het behandelt ook de verzoeken en de antwoorden van de JMS.
Maak het script van "amq.js" aan de kant van de client om de Ajax-functies te activeren. Dit script geeft gevolg aan een van de drie beschikbare adapters ter ondersteuning van uw Ajax-applicatie communicatie met de server van Apache, die jQuery, Prototype en Dojo. Het script moet er zo uitzien:
var amq = org.activemq.Amq;
amq.init({
uri: 'amq', logging: true, timeout: 20
});
Dit script biedt de server API om berichten te verzenden en te abonneren op verschillende kanalen en onderwerpen.
Toepassing van de volgende methode om te bellen en een JMS-bericht verzenden vanuit de JavaScript-client:
amq.sendMessage(myDestination,myMessage);
myDestination element vertegenwoordigt het URL-string adres van de bestemming, zoals "topic://MY. IDENTITEIT"of"channel://MY. IDENTITEIT,"terwijl myMessage component gewoon elke goed geconstrueerde XML of een XML-gecodeerd tekstbestand is.
Definiëren van een functie voor berichtafhandeling en registreren met het AMQ-object om het bericht levering functie van Ajax. Bijvoorbeeld:
var myHandler =
{
rcvMessage: function(message)
{
alert("received "+message);
}
};
amq.addListener(myId,myDestination,myHandler.rcvMessage);
myID fungeert als een tekenreeks-id die aan de bel van de amq.removeHandler(myId) later kan worden gebruikt. Voor de definitie van myDestination component, verwijzen naar de vorige stap. Wanneer de server een bericht ontvangt, stuurt een aanroep terug naar de myHandler.rcvMessage-functie het bericht aan uw behandeling code voor verwerking en levering.
- Meer gratis tutorials voor ActiveMQ zijn beschikbaar op de website van Apache.org, dus voel je vrij om te leren zo veel als je kunt.