spacepaste

  1.  
  2. #------------- server.py ---------------
  3. class Manager:
  4. def __init__(self):
  5. self.onClientAdd = Event()
  6. self.onClientRemove = Event()
  7. self.onClientPing = Event()
  8. self.protocol = {
  9. "clientAdd" : self.onClientAdd,
  10. "clientRemove" : self.onClientRemove,
  11. "clientPing" : self.onClientPing }
  12. def ReadPacket(self, data):
  13. self.protocol.get(data["type"])(data) # Route packets to it's specified function in the protocol dictionary.
  14. #-------------------------------------------------------------------
  15. import server
  16. # This should be called when a "clientAdd" packet has been recieved
  17. def AddingClient(data):
  18. print "adding client %s" % data["id"]
  19. # This should be called when a "clientRemove" packet has been recieved
  20. def RemovingClient(data):
  21. print "removing client %s" % data["id"]
  22. # This should be called when a "clientPing" packet has been recieved
  23. def PingingClient(data):
  24. print "pining client %s" % data["id"]
  25. serverMan = server.Manager()
  26. serverMan.onClientAdd += AddingClient
  27. serverMan.onClientRemove += RemovingClient
  28. serverMan.onClientPing += PingingClient
  29. # Send a test packet to the server, where id is "1337" and packet type is "clientAdd".
  30. serverMan.ReadPacket({"id":1337,"type":"clientAdd"})
  31. #-------------------------- OUTPUT --------------------
  32. adding client 1137
  33.