File: frontend_cancel.py

package info (click to toggle)
python-autobahn 23.1.2%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 8,424 kB
  • sloc: python: 38,620; javascript: 2,705; makefile: 899; ansic: 373; sh: 63
file content (34 lines) | stat: -rw-r--r-- 848 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34


from autobahn.twisted.component import Component, run
from autobahn.wamp.types import RegisterOptions
from autobahn.wamp.exception import ApplicationError
from twisted.internet.defer import inlineCallbacks, CancelledError


@inlineCallbacks
def main(reactor, session):
    print("Client session={}".format(session))
    d = session.call("example.foo", "some", "args")
    print("Called 'example.foo': {}".format(d))
    print("cancel()-ing the above Deferred")

    d.cancel()

    try:
        res = yield d
        print("somehow we got a result: {}".format(res))
    except CancelledError:
        print("call was canceled successfully")
    print("done")


component = Component(
    transports="ws://localhost:8080/auth_ws",
    main=main,
    realm="crossbardemo",
)


if __name__ == "__main__":
    run([component])  #, log_level='debug')