Outils pour utilisateurs

Outils du site


using_perspective_broker

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 ???? m(

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

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()
using_perspective_broker.1669659227.txt.gz · Dernière modification : de serge