J'ai une application multi-utilisateur composée d'un client flexible et blazeds/Spring/java backend - J'ai les principaux éléments qui fonctionnent bien à savoir. envoyer des messages à destination, consommer et produire. Les clients Flex peuvent envoyer et récupérer une chaîne de cette classe sans problème. Ce que je veux faire est d'avoir les 2 clients avec l'accès à la même variable .. dans cet échantillon brut, j'envoie un guid de chaque swf que j'ajoute à un côté serveur _players chaîne. Qu'est-ce qui se passe est quand je lance Swf A, il reçoit son guid retour bien, comme Swf B. Swf A reçoit le guid de Swf B, mais Swf B ne reçoit pas Swf A. BTW c'est le même code SWF juste lancé deux fois chacun dans un navigateur différent.Connexion de plusieurs clients flex à une seule classe java
Quelqu'un peut-il voir où je me trompe ou quelle pourrait être une meilleure solution?
public class GameFeed {
private static GaneFeedThread thread;
private final MessageTemplate template;
public GameFeed(MessageTemplate template) {
this.template = template;
}
public void start() {
if (thread == null) {
thread = new GaneFeedThread(this.template);
thread.start();
}
}
public void stop() {
thread.running = false;
thread = null;
}
public static class GaneFeedThread extends Thread {
public boolean running = false;
private final MessageTemplate template;
public GaneFeedThread(MessageTemplate template) {
this.template = template;
}
private static String _players;
public void addPlayer(String name)
{
_players += name + ",";
}
while (this.running) {
this.template.send("game-feed", _players);
}
choisir le moniteur utilisé pour le bloc syncronisé sage: il ne pouvait pas être 'this' – Ralph
Merci pour cela.J'ai finalement trouvé le problème, mais merci pour votre aide. Le problème était en fait assez bête et en raison de la portée variable. J'ai déplacé la variable dans la classe GameFeed par opposition à la classe Thread activée par le client et cela a bien fonctionné. – MikeW