CustomTCPThreadedClient¶
-
class
labpyproject.core.net.custom_TCP.
CustomTCPThreadedClient
(server_address, externalhandler=None, auto_connect=True)[source]¶ Bases :
labpyproject.core.app.app_components.NETComp
Objet client du serveur CustomTCPServerContainer
Le client trace les données de connection vers le serveur. Il enregistre également les dernières erreurs survenues lors des connections, envois et réceptions.
A chaque occurence d’une action d’envoi ou réception, le client envoie au composant business (appli métier), un dict d’infos réseau via la méthode dispatch_network_infos.
Détection des problèmes de connections :
client: analyse des erreurs en fonction de leur degré de gravité (même principe que le serveur frontal).
serveur: analyse des logs d’envoi et réception (fonction des dernières erreurs et du nombre total d’erreurs).
Lorsque le statut du serveur passe à CustomRequestHelper.STATUS_UNDEFINED on le considère comme probablement déconnecté. Dans ce cas les prochaines tentatives d’envoi se limiteront à un essai. Charge à l’appli métier de décider de considérer définitivement le serveur comme déconnecté.
Constructeur
- Paramètres
server_address (tuple) –
externalhandler (function) – fonction externe appelée à l’issue du traitement d’une requète entrante
auto_connect (Boolean) – connection automatique à l’initialisation
Rq: externalhandler est une option, utiliser de préférence le mécanisme par défaut de Queues hérité de app_components
Attributes Summary
identifiant unique du client (défini par le serveur)
Methods Summary
connect
(exobj)Ordre de connection à l’adresse pré définie ou à l’adresse éventuellement indiquée dans exobj.dictargs={« host »:, « port »:}
disconnect
(exobj)Ordre de déconnexion.
Envoi au composant Business les infos réseau.
Informe le composant business de l’état de connection
dispatch_to_external_handler
(dicthandler)Transmission à l’application associée en toute fin du traitement de la requète
Mise à jour des infos réseau.
net_shutdown
(exobj)Ordre de clôture du réseau.
Pseudo événement : indique que le thread principal du composant est démarré (Méthode de appcomp.ThreadableComp)
send
(msg[, confirmrecept])Envoie msg au serveur avec accusé de réception par défaut.
sendFromExchangeObject
(exobj)Méthode d’envoi à partir des données comprises dans l’objet NETExchangeObject
set_address
(exobj)Affecte l’adresse d’écoute du serveur / adresse d’écriture du client.
shutdown
()Clôture définitive du composant propagé par APPComp.
Attributes Documentation
-
uid
¶ identifiant unique du client (défini par le serveur)
Methods Documentation
-
connect
(exobj)[source]¶ Ordre de connection à l’adresse pré définie ou à l’adresse éventuellement indiquée dans exobj.dictargs={« host »:, « port »:}
- Paramètres
exobj (NETExchangeObject) – objet d’échange
-
disconnect
(exobj)[source]¶ Ordre de déconnexion.
- Paramètres
exobj (NETExchangeObject) – objet d’échange
-
dispatch_network_status
(msg)[source]¶ Informe le composant business de l’état de connection
- Paramètres
msg – message d’info
-
dispatch_to_external_handler
(dicthandler)[source]¶ Transmission à l’application associée en toute fin du traitement de la requète
de préférence via le mécanisme de Queues hérité de app_components (via queue_tools)
sinon via self.externalhandler en appel direct s’il est défini
-
net_shutdown
(exobj)[source]¶ Ordre de clôture du réseau.
Rq : on ne clôt pas le process de gestion de tâches, le client est complètement ré initialisé, mais peut être redémarré.
- Paramètres
exobj (NETExchangeObject) – objet d’échange
-
on_component_thread_started
()[source]¶ Pseudo événement : indique que le thread principal du composant est démarré (Méthode de appcomp.ThreadableComp)
-
send
(msg, confirmrecept=True)[source]¶ Envoie msg au serveur avec accusé de réception par défaut.
- Paramètres
msg (str) – message à envoyer
confirmrecept (boolean) – avec accusé de réception?
-
sendFromExchangeObject
(exobj)[source]¶ Méthode d’envoi à partir des données comprises dans l’objet NETExchangeObject
- Paramètres
exobj (NETExchangeObject) – objet d’échange
-
set_address
(exobj)[source]¶ Affecte l’adresse d’écoute du serveur / adresse d’écriture du client.
- Paramètres
exobj (NETExchangeObject) – objet d’échange avec exobj.dictargs={« host »:, « port »:}