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

uid

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.

dispatch_network_infos()

Envoi au composant Business les infos réseau.

dispatch_network_status(msg)

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

get_network_infos()

Mise à jour des infos réseau.

net_shutdown(exobj)

Ordre de clôture du réseau.

on_component_thread_started()

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_infos()[source]

Envoi au composant Business les infos réseau.

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

get_network_infos()[source]

Mise à jour des infos réseau.

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 »:}

shutdown()[source]

Clôture définitive du composant propagé par APPComp.