import requests import sys SERVER_URL = "http://localhost:8000" def post_message(user_name, content): """서버로 메시지를 전송합니다.""" payload = { "name": user_name, "message": content } try: response = requests.post(f"{SERVER_URL}/messages", json=payload) if response.status_code == 200: print("전송 성공!") return True else: print(f"전송 실패: {response.text}") return False except Exception as e: print(f"오류 발생: {e}") return False def get_messages(start_index): """서버로부터 새로운 메시지를 가져옵니다.""" try: response = requests.get(f"{SERVER_URL}/messages", params={"start": start_index}) if response.status_code == 200: new_messages = response.json() if not new_messages: print("새로운 메시지가 없습니다.") else: for msg in new_messages: print(f"[{msg['timestamp']}] {msg['name']}: {msg['message']}") return new_messages else: print(f"메시지 수신 실패: {response.text}") return [] except Exception as e: print(f"오류 발생: {e}") return [] def main(): print("FastAPI 채팅 클라이언트에 오신 것을 환영합니다!") user_name = input("이름을 입력해주세요 > ").strip() if not user_name: user_name = "Anonymous" start_index = 0 while True: print("\n수행할 작업을 선택해주세요:") print("1. 메시지 전송") print("2. 수신한 메시지 보기") print("3. 종료") choice = input("> ").strip() if choice == "1": message_content = input("메시지 내용: ").strip() if message_content: post_message(user_name, message_content) else: print("메시지를 입력해주세요.") elif choice == "2": new_msgs = get_messages(start_index) start_index += len(new_msgs) elif choice == "3": print("프로그램을 종료합니다.") sys.exit(0) else: print("잘못된 입력입니다. 1~3 사이의 숫자를 입력해주세요.") if __name__ == "__main__": main()