Ma fonction d'abonnement appellera la fonction ON_MESSAGE à chaque fois que le message de Websocket
et se désabonner lorsque le message est stop sans en boucle, le code se terminera et ne pas récupérer plus de message.
Je veux trouver la meilleure façon (sans Time.sleep) pour interrompre et continuer le code P> ps. Je ne peux pas éditer la fonction d'abonnement et de désinscription p> p>
3 Réponses :
Si vous souhaitez continuer le code, vous pouvez utiliser la commande continuer () code> et si vous souhaitez arrêter, vous pouvez utiliser la commande break () code>. < / p>
Ce n'est pas très clair de ce dont vous parlez ici. Continuer code> et Break code> sont des mots-clés de Python. Ce sont des déclarations indépendantes et non des fonctions que vous devez appeler.
Vous pouvez exécuter l'instance de votre serveur WebSocket dans un fil séparé. Cela vous permettra toujours de continuer à exécuter votre fil principal lorsque votre serveur Web écoute des messages entrants. P>
Je pense que cela peut être le contraire de ce que le questionneur a besoin. Ils semblent veulent i> le fil principal à bloquer pendant que la switewet est sa chose, mais il ne semble pas y avoir un excellent moyen d'attendre qu'il finisse. Leur code actuel est une boucle avec un appel code> code> appel, et ils veulent une meilleure façon.
Ensuite, j'ai complètement manqué le point, mon hypothèse était que le problème est que le serveur doit être bloqué pour pouvoir recevoir constamment des messages.
Oui, je ne suis pas certain de mon interprétation, la question n'est pas très claire.
Je pense que vous ne pouvez pas le faire sans une boucle de temps. Si vous souhaitez libérer votre fil principal, vous pouvez faire votre abonnement à votre message sur le fil séparé, mais ce n'est pas ce que vous voulez, je suppose. La plupart des clients Websocket fourniraient une méthode pour garder la connexion en vie. par exemple Ceci fournit un Run_forever () Code> Méthodes qui fait le "Bien que boucle 'partie pour vous. Si vous utilisez un client, il est possible qu'ils fournissent des méthodes permettant de garder la connexion en vie. Je vous suggère de passer une fois de plus la documentation. P>
Je ne suis pas sûr de comprendre ce que vous demandez. Voulez-vous que le code
impression ("fin") code> pour fonctionner avant de vous désabonner ou avez-vous un problème avec la boucle jamais rupture du tout? Je pense que vous avez besoinglobal is_sub code> dans la fonctionOn_Message CODE> fonctionner pour fonctionner.Votre code manque la fonction d'abonnement - Actuellement, il ne s'agit que d'une nataleError.
Le
is_sub code> à l'intérieur de votre fonction est une variable locale qui n'a aucune connexion au global scopéis_sub code> - lire Courte-description-de-Scoping-Règles