J'ai un programme de serveur client écrit en utilisant l'API Java. J'essaie d'envoyer un message au serveur, puis le serveur enverra un message de réponse au client. Le client enverra empoisonnement au serveur. Si le serveur reçoit un message empoisonnement, il doit être arrêté. Annulez les snippents de code pour le même. En ClientActor:Envoi d'empoisonnement au serveur à partir du client dans Akka
remoteActor.tell(poisonPill());
En ServerActor:
public void onReceive(Object message) throws Exception {
if (message instanceof String) {
getSender().tell(message + " got something");
} else if (message instanceof PoisonPill) {
getContext().system().shutdown();
}
}
Mais la ligne message instanceof PoisonPill
n'est pas en cours d'exécution, de sorte que le serveur est toujours en cours d'exécution.
Quelqu'un peut-il m'aider à ce sujet? pourquoi la ligne ne s'exécute pas du tout?
La seule façon dont cette ligne ne s'exécute pas est si le message est toujours une chaîne. Essayez le débogage ou la journalisation. – Thilo
si le message est toujours une chaîne, alors y at-il de toute façon vérifier l'empoisonnement du client? – user1442237
Vous remoteActor invoque une méthode poisonPill(). Renvoie-t-il un objet PoisonPill? –