def listen(self): client = CCNxClient() tutorialPrefix = "lci:/tutorial/game" gameInfoName = "lci:/tutorial/game/info" playerConnectName = "lci:/tutorial/game/connect" playerInfoName = "lci:/tutorial/game/players" playerStateName = "lci:/tutorial/game/players/state" listening = client.listen(tutorialPrefix) while listening: name, data = client.receive() # Short circuits if name == None or data == None: continue if self.isDone: listening = False continue if name == gameInfoName: payload = { "connect-url" : str(playerConnectName), "board-size" : self.board.board_size(), "player-url" : str(playerInfoName), "state-url" : str(playerStateName) } payload = json.dumps(payload) client.reply(name, payload) if name == playerInfoName: payload = json.dumps(str(self.players)) client.reply(name, payload) if playerStateName in name: payload = json.loads(data) player = payload["username"] shipNumber = payload["ship-number"] state = self.get_player_state(player, 0) payload = json.dumps(state) client.reply(name, payload) if playerConnectName in name: payload = json.loads(data) username = payload["username"] ipAddress = payload["ip"] port = int(payload["port"]) teamplayer = int(payload["teamplayer"]) numberOfShips = int(payload["number-of-ships"]) payload = json.dumps({ "result" : "OK" }) client.reply(name, payload) # Configure a link and route back to the client name, data = createAddLinkMessage(ipAddress, port, username) client.push(name, data) name, data = createAddRouteMessage("lci:/tutorial/" + username, username) client.push(name, data) self.add_player(username, numberOfShips, ipAddress, port, teamplayer) print >> sys.stderr, "Adding player: " + username
class GameClient(object): def __init__(self, username): self.ccnxClient = CCNxClient() self.username = username #@Remove def init(self): self.connectUri = "lci:/tutorial/game/connect" self.personalPrefix = "lci:/tutorial/" + self.username self.actionPrefix = "lci:/tutorial/" + self.username + "/action" self.statePrefix = "lci:/tutorial/game/players/state/" + self.username #@Remove def connect(self): payload = { "ip": "localhost", "port": 9695, "username": self.username, "teamplayer": 0, "number-of-ships": 1 } self.ccnxClient.get(self.connectUri, json.dumps(payload)) # consume the result def run(self): listening = self.ccnxClient.listen(self.personalPrefix) while listening: name, data = self.ccnxClient.receive() if name == None: continue if "action" in name: self.display_state() self.take_action(name) listening = self.display_state() #@Remove def get_state(self, ship=0): payload = { "username": self.username, "ship-number": ship, } data = self.ccnxClient.get(self.statePrefix, json.dumps(payload)) while data == None: data = self.ccnxClient.get(self.statePrefix, json.dumps(payload)) state = json.loads(data) return state def display_state(self, ship=0): state = self.get_state(ship) if state["gameover"] == 1: print "Game over!" return False else: table = state_to_string(state) print table return True def get_input(self): action = str(raw_input('ACTION: ')) x = int(input('ROW: ')) y = int(input('COL: ')) # ship = int(input('ship: ')) return (action, x, y, 0) #@Remove def take_action(self, name): (action, x, y, ship) = self.get_input() params = {"x": x, "y": y, "ship-number": ship} response = { "username": self.username, "action": action, "params": params } payload = json.dumps(response) self.ccnxClient.reply(name, payload)
stream_ids = tls.get_credentials_file()['stream_ids'] stream_id = stream_ids[0] stream = Stream(token=stream_id, maxpoints=80) dataTrace = Scatter(x=[], y=[], mode='lines+markers', stream=stream) data = Data([dataTrace]) layout = Layout(title='Time Series') fig = Figure(data=data, layout=layout) unique_url = py.plot(fig, filename='CCNxIOT-Collector') s = py.Stream(stream_id) s.open() client = CCNxClient() client.listen("lci:/tutorial/iot/collector") while True: try: name, data = client.receive() print name, data y = int(name.split("/")[-1]) x = datetime.datetime.now() s.write(dict(x=x, y=y)) print "writing %s" % (str(dict(x = x, y = y))) client.reply(name, "OK") except: pass s.close()
stream_ids = tls.get_credentials_file()['stream_ids'] stream_id = stream_ids[0] stream = Stream(token=stream_id, maxpoints=80) dataTrace = Scatter(x=[], y=[], mode='lines+markers', stream=stream) data = Data([dataTrace]) layout = Layout(title='Time Series') fig = Figure(data=data, layout=layout) unique_url = py.plot(fig, filename='CCNxIOT-Collector') s = py.Stream(stream_id) s.open() client = CCNxClient() client.listen("lci:/tutorial/iot/collector") while True: try: name, data = client.receive() print name, data y = int(name.split("/")[-1]) x = datetime.datetime.now() s.write(dict(x=x, y=y)) print "writing %s" % (str(dict(x=x, y=y))) client.reply(name, "OK") except: pass s.close()
class GameClient(object): def __init__(self, username): self.ccnxClient = CCNxClient() self.username = username #@Remove def init(self): self.connectUri = "lci:/tutorial/game/connect" self.personalPrefix = "lci:/tutorial/" + self.username self.actionPrefix = "lci:/tutorial/" + self.username + "/action" self.statePrefix = "lci:/tutorial/game/players/state/" + self.username #@Remove def connect(self): payload = { "ip" : "localhost", "port" : 9695, "username" : self.username, "teamplayer" : 0, "number-of-ships" : 1 } self.ccnxClient.get(self.connectUri, json.dumps(payload)) # consume the result def run(self): listening = self.ccnxClient.listen(self.personalPrefix) while listening: name, data = self.ccnxClient.receive() if name == None: continue if "action" in name: self.display_state() self.take_action(name) listening = self.display_state() #@Remove def get_state(self, ship = 0): payload = { "username" : self.username, "ship-number" : ship, } data = self.ccnxClient.get(self.statePrefix, json.dumps(payload)) while data == None: data = self.ccnxClient.get(self.statePrefix, json.dumps(payload)) state = json.loads(data) return state def display_state(self, ship = 0): state = self.get_state(ship) if state["gameover"] == 1: print "Game over!" return False else: table = state_to_string(state) print table return True def get_input(self): action = str(raw_input('ACTION: ')) x = int(input('ROW: ')) y = int(input('COL: ')) # ship = int(input('ship: ')) return (action, x, y, 0) #@Remove def take_action(self, name): (action, x, y, ship) = self.get_input() params = {"x": x, "y": y, "ship-number": ship} response = { "username" : self.username, "action" : action, "params" : params } payload = json.dumps(response) self.ccnxClient.reply(name, payload)