j'ai un ManagedService avec fonction onMessageAmbiance: serveur reçoit son message
@ManagedService(path = "/atmosphere/formuserpresence/{id}")
public class FormUserPresenceUpdate extends AtmosphereHelper
{
@Message
public final void onMessage(final String message) throws IOException
{
...
...
...
...
broadcast(FormUserPresenceUpdate.class, "/atmosphere/formuserpresence/" + statusMessage.getId(), returnArrayString);
}
}
Et je la communication client-serveur. Plusieurs clients peuvent s'abonner à cette chaîne en utilisant leurs identifiants. Ensuite, le client peut envoyer un statut, comme
message = { ident: "UNIQID", statut: "statusMessageValue" });
Classe FormUserPresenceUpdate stocke tous les statuts reçus de tous les clients et les renvoie en tant que tableau sous la forme d'une fonction de diffusion en tant que messages (returnArrayString). Le problème est que, si les clients reçoivent les valeurs correctes (le tableau de messages), le serveur reçoit également ce tableau de lui-même et n'a pas réussi à l'analyser. Donc, la question est: quelle est la solution à cette situation? Puis-je en quelque sorte le faire, de ne pas envoyer ce tableau de messages par le serveur lui-même? Ou devrais-je créer une deuxième chaîne (je ne voudrais vraiment pas faire ça)?
Merci pour votre réponse. J'ai résolu mon problème particulier en remplaçant la fonction de diffusion par 'return message'. De cette façon, tous les abonnés reçoivent le message, mais pas le serveur, ce qui était bien pour moi. Également trouvé un indice ici [link] (http://atmosphere-framework.2306103.n4.nabble.com/ManagedService-with-Post-tp4657184p4657185.html) où il est dit, que si le décodeur pour le 'onMessage 'la méthode ne parvient pas à décoder l'objet, cette' onMessage' sera ignorée. Je pense que cela vaut la peine d'ajouter à votre message pour d'autres utilisateurs. Quoi qu'il en soit, marqué la question comme acceptée, merci. :-) – CodeMonkey