slixmpp/examples/rpc_async.py

43 lines
754 B
Python
Raw Normal View History

2014-08-16 20:37:29 +00:00
#!/usr/bin/env python3
2021-02-05 19:51:15 +00:00
# Slixmpp: The Slick XMPP Library
# Copyright (C) 2011 Dann Martens
# This file is part of Slixmpp.
# See the file LICENSE for copying permission.
2011-01-13 10:58:20 +00:00
2014-07-17 12:19:04 +00:00
from slixmpp.plugins.xep_0009.remote import Endpoint, remote, Remote, \
2011-01-13 10:58:20 +00:00
ANY_ALL, Future
import time
class Boomerang(Endpoint):
2011-01-13 10:58:20 +00:00
def FQN(self):
return 'boomerang'
2011-01-13 10:58:20 +00:00
@remote
def throw(self):
print("Duck!")
2011-01-13 10:58:20 +00:00
def main():
session = Remote.new_session('kangaroo@xmpp.org/rpc', '*****')
session.new_handler(ANY_ALL, Boomerang)
2011-01-13 10:58:20 +00:00
boomerang = session.new_proxy('kangaroo@xmpp.org/rpc', Boomerang)
2011-01-13 10:58:20 +00:00
callback = Future()
2011-01-13 10:58:20 +00:00
boomerang.async(callback).throw()
2011-01-13 10:58:20 +00:00
time.sleep(10)
2011-01-13 10:58:20 +00:00
session.close()
2011-01-13 10:58:20 +00:00
if __name__ == '__main__':
main()