def _startLogOn(self, chatui): print('Connecting...', end=' ') d = pb.getObjectAt(self.host, self.port) d.addCallbacks(self._cbConnected, self._ebConnected, callbackArgs=(chatui, )) return d
def render(self, request): """Render this request, from my server. This will always be asynchronous, and therefore return NOT_DONE_YET. It spins off a request to the pb client, and either adds it to the list of pending issues or requests it immediately, depending on if the client is already connected. """ if not self.publisher: self.pending.append(request) if not self.waiting: self.waiting = 1 pb.getObjectAt(self.host, self.port, 10).addCallbacks(self.connected, self.notConnected) else: i = Issue(request) self.publisher.callRemote('request', request).addCallbacks(i.finished, i.failed) return NOT_DONE_YET
def main(): rootobj_def = pb.getObjectAt("localhost", 8800, 30) rootobj_def.addCallbacks(got_rootobj) obj2_def = getSomeObjectAt("localhost", 8800, 30, "two") obj2_def.addCallbacks(got_obj2) obj3_def = getSomeObjectAt("localhost", 8800, 30, "three") obj3_def.addCallbacks(got_obj3) reactor.run()
def _start(self): print 'Waiting for Server', self.host dfr = pb.getObjectAt(self.host, PORT, 30) dfr.addCallbacks(self._gotRemote, self._remoteFail)
def testGetObjectAt(self): d = pb.getObjectAt("127.0.0.1", self.portno) d.addCallback(self.addRef) d.addCallback(self._checkRootObject) return d
def connect(self): deferred = pb.getObjectAt("localhost", 8800, 30) deferred.addCallbacks(self.got_obj, self.err_obj)
def ok(self, (int1, int2, shortString, hugeString)): print 'data ok' print int1, int2, repr(shortString), len(hugeString) def nok(self, f): print 'data not ok' return f if __name__ == '__main__': import sys from twisted.internet import reactor from twisted.python import log log.startLogging(sys.stdout) PORTNO = 8123 if sys.argv[1] == 'server': from twisted.spread.flavors import Root from twisted.spread.pb import BrokerFactory class SimpleRoot(Root): def rootObject(self, broker): return DatabaseThingy() reactor.listenTCP(PORTNO, BrokerFactory(SimpleRoot())) elif sys.argv[1] == 'client': from twisted.spread.pb import getObjectAt def getIt(x): r = ResultGetter(x) return r.getRemoteResult() getObjectAt("localhost", PORTNO).addCallback(getIt) else: raise sys.exit("usage: %s (server|client)" % sys.argv[0]) reactor.run()
def testGetObjectAt(self): root = dR(pb.getObjectAt("127.0.0.1", self.portno)) self._checkRootObject(root) root.broker.transport.loseConnection()
# Twisted, the Framework of Your Internet # Copyright (C) 2001 Matthew W. Lefkowitz # # This library is free software; you can redistribute it and/or # modify it under the terms of version 2.1 of the GNU Lesser General Public # License as published by the Free Software Foundation. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA from twisted.spread import pb from twisted.internet import main def gotObject(object): print "got object:",object object.echo("hello network", pbcallback=gotEcho) def gotEcho(echo): print 'server echoed:',echo main.shutDown() def gotNoObject(reason): print "no object:",reason main.shutDown() pb.getObjectAt("localhost", 8789, gotObject, gotNoObject, 30) main.run()
def remote_ring(self, callerID): print "Your phone is ringing. It's a call from", callerID bugClient = BugClient() phoneClient = CellClient() # Log-In Information username = "******" password = "******" bugName = "franz" phoneNumber = "222-303-8485" # A little magic to get us connected... getObjectAt("localhost", portno).addCallback( # challenge-response authentication lambda r: authIdentity(r, username, password) ).addCallback( # connecting to each perspective with 'attach' method of remote identity lambda i: DeferredList([ i.callRemote("attach", "metamorph", bugName, bugClient), i.callRemote("attach", "cellphone", phoneNumber, phoneClient) ]) # connecting perspectives to client-side objects ).addCallback(lambda l: (bugClient.gotPerspective(l[0][1]), phoneClient.gotPerspective(l[1][1]))) reactor.callLater(5, reactor.stop) # In five seconds, log out. reactor.run() # Start the main loop.
def _startLogOn(self, chatui): print('Connecting...', end=' ') d = pb.getObjectAt(self.host, self.port) d.addCallbacks(self._cbConnected, self._ebConnected, callbackArgs=(chatui,)) return d
def makeConnection(self): """Try to connect to an existing server.""" print 'Client: connecting' pb.getObjectAt(self.game.host, self.game.port, 10).addCallbacks(self.gotObject, self.gotNoObject)
def _start(self): print('Waiting for Server...') dfr = pb.getObjectAt(self.host, PORT, 30) dfr.addCallbacks(self._gotRemote, self._remoteFail)
(int1, int2, shortString, hugeString) = xxx_todo_changeme print('data ok') print(int1, int2, repr(shortString), len(hugeString)) def nok(self, f): print('data not ok') return f if __name__ == '__main__': import sys from twisted.internet import reactor from twisted.python import log log.startLogging(sys.stdout) PORTNO = 8123 if sys.argv[1] == 'server': from twisted.spread.flavors import Root from twisted.spread.pb import BrokerFactory class SimpleRoot(Root): def rootObject(self, broker): return DatabaseThingy() reactor.listenTCP(PORTNO, BrokerFactory(SimpleRoot())) elif sys.argv[1] == 'client': from twisted.spread.pb import getObjectAt def getIt(x): r = ResultGetter(x) return r.getRemoteResult() getObjectAt("localhost", PORTNO).addCallback(getIt) else: raise sys.exit("usage: %s (server|client)" % sys.argv[0]) reactor.run()