-
- #------------- server.py ---------------
-
- class Manager:
- def __init__(self):
- self.onClientAdd = Event()
- self.onClientRemove = Event()
- self.onClientPing = Event()
- self.protocol = {
- "clientAdd" : self.onClientAdd,
- "clientRemove" : self.onClientRemove,
- "clientPing" : self.onClientPing }
-
- def ReadPacket(self, data):
- self.protocol.get(data["type"])(data) # Route packets to it's specified function in the protocol dictionary.
-
- #-------------------------------------------------------------------
-
- import server
-
- # This should be called when a "clientAdd" packet has been recieved
- def AddingClient(data):
- print "adding client %s" % data["id"]
-
- # This should be called when a "clientRemove" packet has been recieved
- def RemovingClient(data):
- print "removing client %s" % data["id"]
-
- # This should be called when a "clientPing" packet has been recieved
- def PingingClient(data):
- print "pining client %s" % data["id"]
-
- serverMan = server.Manager()
- serverMan.onClientAdd += AddingClient
- serverMan.onClientRemove += RemovingClient
- serverMan.onClientPing += PingingClient
-
- # Send a test packet to the server, where id is "1337" and packet type is "clientAdd".
- serverMan.ReadPacket({"id":1337,"type":"clientAdd"})
-
- #-------------------------- OUTPUT --------------------
- adding client 1137
-