Ceci est une ancienne révision du document !
Table des matières
Using Perspective Broker
Niveau Pro et intergalactique !
Traduction Google de Using Perspective Broker améliorée par un humain ayant fait intergalactique en 1ère langue !
Exemple simple
Passez votre chemin, cela revient à expliquer la factorisation à un élève de 5ème, en lui parlant de nombres complexes et de cosinus hyperbolique: pourquoi utiliser des “lambda” qui ne sont pas pythoniques ????
Exemple 1
La méthode remote_three() du serveur est appelée par le client avec
obj2.callRemote("three", 12)
De manière générale, sur le client, on peut appeler remote_toto(un_argument) avec
truc.callRemote("toto", un_argument)
Cela appelle la méthode à distance et cela transfert un_argument du client au serveur!
La taille maxi de l'argument est décrit ici: 640 * 1024 bytes ou entier de +ou- 2448
Cette façon de procéder est une des 3 façons possibles(saveurs).
- pb1server.py
from twisted.spread import pb class Two(pb.Referenceable): def remote_three(self, arg): """Appelé par le callback three sur le client obj2.callRemote("three", 12) """ print("Two.three was given", arg) class One(pb.Root): def remote_getTwo(self): """Appelé par le callback getTwo sur le client def2 = obj1.callRemote("getTwo") """ two = Two() print("returning a Two called", two) return two from twisted.internet import reactor reactor.listenTCP(8800, pb.PBServerFactory(One())) reactor.run()
- pb1client.py
from twisted.spread import pb from twisted.internet import reactor def main(): factory = pb.PBClientFactory() reactor.connectTCP("localhost", 8800, factory) def1 = factory.getRootObject() def1.addCallbacks(got_obj1) reactor.run() def got_obj1(obj1): print("got first object:", obj1) print("asking it to getTwo") def2 = obj1.callRemote("getTwo") def2.addCallbacks(got_obj2) def got_obj2(obj2): print("got second object:", obj2) print("telling it to do three(12)") obj2.callRemote("three", 12) main()
