def queuePublishMessage(data): try: message = {"actionMaterialQueue": 1, "dataMaterialQueue": data} credentials = pika.PlainCredentials('test', 'test') parameters = pika.ConnectionParameters('192.168.50.6', 5672, '/', credentials) connection = pika.BlockingConnection(parameters) channel = connection.channel() channel.queue_declare(queue='micro_sv') channel.basic_publish(exchange='', routing_key='micro_sv', body=json.dumps(message, indent=4, sort_keys=True, cls=DecimalEncoder)) connection.close() return json.dumps(message, indent=4, sort_keys=True, cls=DecimalEncoder) except IOError as e: message = {"actionQueue": 0, "data": json.lodas(data)} return json.dumps(message, indent=4, sort_keys=True, cls=DecimalEncoder)
def get_msg_num(SQS_QUEUE_URL): ''' QueueのURLを引数で受け取り,shellに渡し 数字として返す ''' # resultにはjson形式の文字列が入る result = subprocess.run("sh get_msg_num.sh", shell=True, input=SQS_QUEUE_URL, stdout=PIPE, text=True) # 辞書型に変換 as_dict = json.lodas(result.stdout) return
def model_loads(self, model_json): self.model = json.lodas(model_json) self.msum = sum(self.model.values())
def on_message(client, userdata, msg): results.append(json.lodas(msg.payload))
def tcplink(sock, addr, player_id, game): # 将plyaer_id 发给玩家 conn = Controller() data = json.dumps({'player_id' : player_id}) sock.send(data.encode('utf-8')) my_turn = False while True: data = sock.recv(1024) if game.get_current_player() == player_id and not my_turn: data = json.dumps({'mess':'begin'}) sock.send(data.encode('utf-8')) my_turn = True continue if not my_turn: time.sleep(1) data = json.dumps({'mess':'not your turn'}) sock.send(data.encode('utf-8')) continue mess = json.lodas(data) replay = {} infoclass = mess['InfoClass'] # 结束当前回合 if infoclass == 'end': print('end roud') game.update_action_stack() game.update_round() my_turn = False data = json.dumps({'mess':"end"}) sock.send(data.encode('utf-8')) continue # 行动 if infoclass == 'Action': player_id = game.get_current_player() action = mess['action'] chess_id = mess['chess_id'] if action == 'move': x = mess['x'] y = mess['y'] pos = {'x':x, 'y':y} flag = conn.move_chess(game, chess_id, player_id, pos) if action == 'hide': flag = conn.hidden_action(game, player_id, chess_id ) if action == 'conquer': village_id = mess['village_id'] flag = conn.conquer_village(game, player_id, chess_id, village_id) if action == 'get_on_car': car_id = mess['car_id'] flag = conn.get_on_car(game,player_id, chess_id, car_id) if action == 'get_off_car': car_id = mess['car_id'] flag = conn.get_on_car(game,player_id, chess_id, car_id) if action == 'fire': target_id = mess['target_id'] flag = conn.fire_action(game, player_id, chess_id, target_id) if flag : replay['mess'] = 'Sucess' else : replay['mess'] = 'Fail' data = json.dumps(replay) sock.send(data.encode('utf-8')) sock.close() print ('Connection from %s:%s closed.' % addr)