예제 #1
0
def test_server(wsuri, wsuri2=None):

    dealer = Dealer()

    if wsuri2 is None:
        calculator = Calculator()
        dealer.register("http://myapp.com/", calculator)

    broker = Broker()

    class MyPubSubServerProtocol(WampServerProtocol):
        def onSessionOpen(self):
            self.setBroker(broker)
            self.setDealer(dealer)

    wampFactory = WampServerFactory(wsuri)
    wampFactory.protocol = MyPubSubServerProtocol
    listenWS(wampFactory)

    if wsuri2:

        class MyPubSubClientProtocol(WampClientProtocol):
            def onSessionOpen(self):
                self.setBroker(broker)
                self.setDealer(dealer)

        factory = WampClientFactory(wsuri2)
        factory.protocol = MyPubSubClientProtocol
        connectWS(factory)
예제 #2
0
def test_client(wsuri, dopub):

    dorpc = False

    class MyPubSubClientProtocol(WampClientProtocol):
        def onSessionOpen(self):

            print "Connected!"

            def onMyEvent1(topic, event):
                print "Received event", topic, event

            d = self.subscribe("http://example.com/myEvent1", onMyEvent1)

            def subscribeSuccess(subscriptionid):
                print "Subscribe Success", subscriptionid

            def subscribeError(error):
                print "Subscribe Error", error

            d.addCallbacks(subscribeSuccess, subscribeError)

            self.counter = 0

            def sendMyEvent1():
                self.counter += 1
                self.publish("http://example.com/myEvent1", {
                    "msg": "Hello from Python!",
                    "counter": self.counter
                })
                reactor.callLater(2, sendMyEvent1)

            if dopub:
                sendMyEvent1()

            if dorpc:

                def writeln(res):
                    print res

                d = self.call("http://myapp.com/add", 23, 7)
                d.addBoth(writeln)

                d = self.call("http://myapp2.com/add", 40, 2)
                d.addBoth(writeln)

        def onClose(self, wasClean, code, reason):
            print "Connection closed", reason
            reactor.stop()

    factory = WampClientFactory(wsuri)
    factory.protocol = MyPubSubClientProtocol
    connectWS(factory)
예제 #3
0
def test_client2(wsuri):
    class MyPubSubClientProtocol(WampClientProtocol):
        def onSessionOpen(self):

            print "Connected!"
            calculator = Calculator()

            dealer = Dealer()
            dealer.register("http://myapp2.com/", calculator)

            self.setDealer(dealer)

        def onClose(self, wasClean, code, reason):
            print "Connection closed", reason
            reactor.stop()

    factory = WampClientFactory(wsuri)
    factory.protocol = MyPubSubClientProtocol
    connectWS(factory)