2011-06-15 3 views
1

Bonjour les gars je veux traiter quelques poussées de serveur. J'ai un servlet asynchrone traitant quelque chose, le poussant vers le client et ensuite il traite quelque chose d'autre et le repousse au client (même connexion). Le servet retourne juste des données (Json dans ce cas, mais ça ne matte vraiment pas) rien de plus.Servlet client asynchrone, Server push

Donc, mon problème est le client. Comment puis-je créer un client pour cela? Si je fais une requête ajax avec JQuery par exemple comment puis-je réagir sur les données qui viennent après la première réponse?

Pour rendre plus clair ce que je veux ici est une comparaison: Avec les websockets j'ai la méthode onmesssage.

websocket ws = new WebSocket("ws://myserver.com"); 
ws.onmessage = function(event) 
{ 
    var x = event.data 
    .... // some other code here 
} 

Tout ce que je veux, c'est une méthode onmessage :). Je suppose que ce n'est pas aussi simple que ça avec les Websockets mais peut-être que quelqu'un a une idée.

Salutations Aleks

Répondre

0

Vous pouvez avoir votre serveur générer une réponse qui est chargé dans une iframe cachée par le client. La réponse générée contient des instructions JavaScript occasionnelles qui appellent le "outside" (le document contenant). Vous pouvez mettre la main sur le document contenant en utilisant parent.

Mais s'il vous plaît ne pas que cette technique est assez hackish (du moins il me semble). Vous voudrez peut-être reconsidérer simplement en utilisant le XMLHttpRequest, en particulier parce qu'il vous donne un traitement des erreurs simple et robuste. Vous pouvez simplement faire plus de requêtes (au lieu d'ajouter une "ancienne" réponse côté serveur). Cela va probablement introduire un décalage supplémentaire, mais ce truc iframe est vraiment gênant en pratique.

+0

Salut Waldheinz, je suis d'accord que l'idée d'iframe n'est pas vraiment propre. Mais vous m'avez indiqué la solution que je voulais (XMLHttpRequest). C'est exactement ce que j'ai cherché. Merci beaucoup – Aleks

+0

De rien, et bienvenue à SO. – Waldheinz