def play(self): client = CCNxClient(async = True) while not self.is_over(): for player in self.players.keys(): print >> sys.stderr, "Asking " + str(player) + " for move..." playerActionName = "lci:/tutorial/" + str(player) + "/action" data = client.get_async(playerActionName, None, 5) if data != None: payload = json.loads(data) user = payload["username"] action = payload["action"] params = payload["params"] print >> sys.stderr, user, params if action == "move": self.parse_move(user, params) elif action == "shoot": self.parse_shoot(user, params) print self.board for player in self.players: gameOverName = "lci:/tutorial/" + str(player) + "/gameover" client.push(gameOverName, None) self.isDone = True
def run(self): client = CCNxClient() listening = client.listen(self.prefix) print "Lisening on %s" % (self.prefix) while listening: name, data = client.receive_raw() #@REMOVE schemaName = self.prefix + "/schema" if schemaName in str(name): client.reply(str(name), self.build_schema) else: url = "http://" + str(name[1].value) path = "/".join(map(lambda ns : str(ns.value), name[2:])) if len(path) > 0: url = url + "/" + path print "Fetching %s" % (url) content = urllib2.urlopen(url).read() client.reply(str(name), content)
def __init__(self, root): self.root = root self.files = {} self.handles = {} self.descriptor_seq = 0 self.client = CCNxClient()
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
def main(uris): fail_fast() client = CCNxClient() for uri in uris: data = client.get(uri, "") print data
def __init__(self, username): self.ccnxClient = CCNxClient() self.username = 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)
def __init__(self, prefix): self.client = CCNxClient() self.prefix = prefix if len(prefix) == 0: self.prefix = "lci:/gateway"