Featured image of post Phát triển bot QQ dựa trên NapCatQQ và Python – Xử lý phản hồi tin nhắn của websocket năm 2025.1.25 - iwin68.club phiên bản mới

Phát triển bot QQ dựa trên NapCatQQ và Python – Xử lý phản hồi tin nhắn của websocket năm 2025.1.25 - iwin68.club phiên bản mới

Trải nghiệm iwin68.club phiên bản mới với nhiều tính năng hấp dẫn

!)( W1ndys Lv6
25-01-2025 16:32:41 Tạo
08-05-2025 22:12:44 Cập nhật

316 từ, mất khoảng 1 phút để đọc.

Trong bài viết trước về “Phát triển bot QQ dựa trên NapCatQQ và Python – Xử lý tách biệt tin nhắn phản hồi của websocket” được đăng tải trên trang W1ndys Small House, tôi đã đề cập đến việc xử lý bắt giữ phản hồi từ websocket nhằm lấy giá trị trả về. Tuy nhiên, khi phát triển và sử dụng sâu hơn, nhu cầu về đa luồng (multi-threading) đã xuất hiện. Khi bật chế độ đa luồng, một vấn đề mới nảy sinh: Không thể xác định phản hồi từ websocket sẽ truyền vào luồng nào, dẫn đến lỗi trong quá trình vận hành.

[Giải pháp]

Trong mô-đun ví dụ W1ndysBot/Example, nơi cung cấp các mẫu mã nguồn chức năng cho W1ndysBot, vấn đề này đã được giải quyết bằng cách giới thiệu hàm xử lý sự kiện phản hồi mới. Ví dụ cụ thể có thể xem tại W1ndysBot/app/handler_events.py ở nhánh main của dự án W1ndysBot/W1ndysBot:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Hàm xử lý sự kiện phản hồi
async def handle_Example_response_message(websocket, message):
    try:
        msg = json.loads(message)
        if msg.get("status") == "ok":
            echo = msg.get("echo")
            if echo and echo.startswith("xxx"):
                pass
    except Exception as e:
        logging.error(f"Lỗi xảy ra khi xử lý sự kiện phản hồi Example: {e}")
Built with Hugo
Theme Stack thiết kế bởi Jimmy