Advertisement
Guest User

Untitled

a guest
Sep 30th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. #!/usr/bin/python -i
  2.  
  3.  
  4.  
  5. import logging
  6. import time
  7.  
  8. from os import getpid
  9.  
  10. from circuits import Component, Event, Debugger
  11. from circuits.node import Node, remote
  12.  
  13.  
  14. # Logging
  15. logging.basicConfig(
  16. format='%(asctime)s %(name)s %(levelname)s %(process)d %(funcName)s() %(message)s',
  17. datefmt='%m/%d/%Y %I:%M:%S %p'
  18. )
  19. logger = logging.getLogger("test")
  20. logger.setLevel(logging.DEBUG)
  21.  
  22.  
  23. class hello(Event):
  24.  
  25. """hello Event"""
  26.  
  27.  
  28. class App(Component):
  29.  
  30. connection_status = False
  31.  
  32. def init(self):
  33. Debugger().register(self)
  34.  
  35. def ready(self, client):
  36. logger.info("App : Ready!")
  37.  
  38. def connected(self, host, port):
  39. logger.info("App : Connected to {}:{}".format(host, port))
  40. self.connection_status = True
  41.  
  42. # Work
  43. ##
  44. hello_value = yield self.call(remote(hello(), "test"))
  45. logger.info("App -> X : {hello_value}".format(hello_value=hello_value))
  46.  
  47. def hello(self):
  48. return "App : Hello World from a node! ({0:d})".format(getpid())
  49.  
  50.  
  51. class NodeServer(Component):
  52.  
  53. def init(self):
  54. """Initialize our ``ChatServer`` Component.
  55. This uses the convenience ``init`` method which is called after the
  56. component is proeprly constructed and initialized and passed the
  57. same args and kwargs that were passed during construction.
  58. """
  59.  
  60. self.clients = {}
  61.  
  62. Debugger().register(self)
  63.  
  64. port = 9999
  65. address = "0.0.0.0"
  66.  
  67. Node(port=port, server_ip=address).register(self)
  68. logger.info("NodeServer : init done")
  69.  
  70. def connect(self, sock, host, port):
  71. """Connect Event -- Triggered for new connecting clients"""
  72. logger.info("NodeServer client connect")
  73. self.clients[sock] = {
  74. "host": sock,
  75. "port": port,
  76. }
  77.  
  78. def disconnect(self, sock):
  79. """Disconnect Event -- Triggered for disconnecting clients"""
  80.  
  81. if sock not in self.clients:
  82. return
  83.  
  84. del self.clients[sock]
  85.  
  86. def ready(self, server, bind):
  87. logger.info("NodeServer : Ready! Listening on {}:{}".format(*bind))
  88. logger.info("NodeServer : Waiting for remote events...")
  89.  
  90. def hello(self):
  91. logger.info("NodeServer hello")
  92. return "NodeServer : Hello World from server! ({0:d})".format(getpid())
  93.  
  94.  
  95.  
  96. if __name__ == "__main__":
  97. # Server
  98. ##
  99. serv = NodeServer()
  100. serv.start(process=True)
  101. time.sleep(2)
  102.  
  103. # Client
  104. ##
  105. app = App()
  106. node = Node().register(app)
  107. bind = ("127.0.0.1", 9999)
  108. node.add("test", *bind)
  109.  
  110. app.start(process=False)
  111. while not app.connection_status:
  112. time.sleep(1)
  113. logger.info("waiting to start...")
  114. logger.info("started")
  115.  
  116.  
  117. #Don't work
  118. ##
  119. x = app.fire(remote(hello(),"test"))
  120. logger.info("Main -> X : {x}".format(x=x))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement