slixmpp/examples/rpc_async.py

48 lines
796 B
Python
Raw Normal View History

2014-08-16 20:37:29 +00:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
2011-01-13 10:58:20 +00:00
"""
2014-07-17 12:19:04 +00:00
Slixmpp: The Slick XMPP Library
2011-01-13 10:58:20 +00:00
Copyright (C) 2011 Dann Martens
2014-07-17 12:19:04 +00:00
This file is part of Slixmpp.
2011-01-13 10:58:20 +00:00
See the file LICENSE for copying permission.
"""
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()