Gỡ lỗi ứng dụng Google Chat

Là nhà phát triển ứng dụng Google Chat, bạn có thể cần gỡ lỗi mã để kiểm thử các thay đổi hoặc khắc phục sự cố phức tạp. Bạn có thể gỡ lỗi ứng dụng Chat theo nhiều cách, tuỳ thuộc vào cấu trúc của ứng dụng, chức năng của ứng dụng, cách triển khai ứng dụng và lựa chọn ưu tiên của bạn.

Trang này giải thích cách gỡ lỗi ứng dụng HTTP Chat bằng ngrok. Đây là một nền tảng truy cập hợp nhất mà bạn có thể dùng để kiểm thử môi trường phát triển cục bộ. Trong hướng dẫn này, bạn sẽ kiểm thử các thay đổi về mã trong môi trường cục bộ và khắc phục sự cố trong môi trường từ xa.

Gỡ lỗi từ môi trường phát triển cục bộ

Trong phần này, bạn tương tác với ứng dụng Chat chạy trong môi trường cục bộ.

Gỡ lỗi từ môi trường phát triển cục bộ

Hình 1. Gỡ lỗi trong môi trường phát triển cục bộ.

Hội thảo

Node.js

Python

Java

Điều kiện tiên quyết

Node.js

Python

Java

Cung cấp dịch vụ máy chủ cục bộ công khai

Bạn cần kết nối môi trường cục bộ với Internet để ứng dụng Chat có thể truy cập vào môi trường đó. Ứng dụng ngrok được dùng để chuyển hướng các yêu cầu HTTP được thực hiện đến một URL công khai đến môi trường cục bộ của bạn.

  1. Trong trình duyệt trong môi trường cục bộ, hãy đăng nhập vào tài khoản ngrok.
  2. Cài đặt ứng dụng và thiết lập authtoken trong môi trường cục bộ.
  3. Tạo một miền tĩnh trong tài khoản ngrok. Miền này được tham chiếu là NGROK_STATIC_DOMAIN trong hướng dẫn của hướng dẫn này.

Định cấu hình ứng dụng Chat

Định cấu hình ứng dụng Chat để gửi tất cả các yêu cầu HTTP đến miền tĩnh của bạn.

  1. Trong Google Cloud Console, hãy mở trang Google Chat API:

    Chuyển đến trang Google Chat API

  2. Nhấp vào thẻ Cấu hình.

  3. Chuyển đến Tính năng tương tác > Cài đặt kết nối rồi đặt giá trị của trường văn bản URL điểm cuối HTTP thành:

    https://NGROK_STATIC_DOMAIN
    

    Thay thế NGROK_STATIC_DOMAIN bằng miền tĩnh trong tài khoản ngrok.

  4. Nhấp vào Lưu.

Ứng dụng Chat gửi tất cả các yêu cầu HTTP đến miền tĩnh

Hình 2. Ứng dụng Chat gửi tất cả các yêu cầu HTTP đến miền tĩnh. Dịch vụ công khai ngrok đóng vai trò là cầu nối giữa ứng dụng Chat và mã ứng dụng thực thi cục bộ.

Kiểm thử ứng dụng Chat

Bạn có thể triển khai, định cấu hình, kiểm thử, gỡ lỗi và tự động tải lại ứng dụng Chat trên máy.

Node.js

  1. Sao chép kho lưu trữ googleworkspace/google-chat-samples từ GitHub sang môi trường cục bộ. Kho lưu trữ này chứa mã của ứng dụng cần thực thi:

    git clone https://github.com/googleworkspace/google-chat-samples.git
  2. Từ IDE Visual Studio Code đã cài đặt trong môi trường cục bộ, hãy làm như sau:

    1. Trong một cửa sổ mới, hãy mở thư mục google-chat-samples/node/basic-app.
    2. Định cấu hình ứng dụng để tự động tải lại tính năng gỡ lỗi bằng cách thêm hai tập lệnh vào tệp package.json:

      {
          ...
          "scripts": {
              ...
              "debug": "node --inspect index.js",
              "debug-watch": "nodemon --watch ./ --exec npm run debug"
          }
          ...
      }
      
    3. Trong thư mục gốc, hãy cài đặt ứng dụng:

      npm install
    4. Tạo và định cấu hình một lần khởi chạy có tên là Debug Watch để kích hoạt tập lệnh debug-watch bằng cách tạo tệp .vscode/launch.json trong thư mục gốc:

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "node",
              "request": "launch",
              "name": "Debug Watch",
              "cwd": "${workspaceRoot}",
              "runtimeExecutable": "npm",
              "runtimeArgs": ["run-script", "debug-watch"]
          }]
      }
      
    5. Thêm một điểm ngắt tạm dừng quá trình xử lý yêu cầu HTTP trong tệp index.jsbắt đầu chạy và gỡ lỗi bằng cấu hình Debug Watch đã thêm trước đó. Ứng dụng hiện đang chạy và theo dõi các yêu cầu HTTP trên cổng 9000.

      Ứng dụng đang chạy và lắng nghe các yêu cầu HTTP trên cổng "9000"

      Hình 3. Ứng dụng đang chạy và lắng nghe các yêu cầu HTTP trên cổng 9000.

  3. Chạy ứng dụng ngrok trong môi trường cục bộ:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

    Thay thế NGROK_STATIC_DOMAIN bằng miền tĩnh trong tài khoản ngrok. Tất cả các yêu cầu hiện được chuyển hướng đến môi trường cục bộ và cổng mà ứng dụng sử dụng.

    Thiết bị đầu cuối có máy chủ `ngrok` đang chạy và chuyển hướng

    Hình 4. Cổng kết nối có máy chủ ngrok đang chạy và chuyển hướng.

  4. Giao diện web cũng được khởi động trên máy chủ cục bộ của bạn bằng ứng dụng ngrok, bạn có thể theo dõi tất cả hoạt động bằng cách mở giao diện web đó trong trình duyệt.

    Giao diện web do ứng dụng "ngrok" lưu trữ không hiển thị yêu cầu HTTP nào

    Hình 5. Giao diện web do ứng dụng ngrok lưu trữ không hiển thị yêu cầu HTTP nào.

  5. Kiểm thử ứng dụng Chat bằng cách gửi tin nhắn trực tiếp:

    • Mở Google Chat.

      Chuyển đến Google Chat

    • Nhấp vào biểu tượng Cuộc trò chuyện mới .

    • Trong hộp thoại, hãy nhập tên của ứng dụng Chat.

    • Trong kết quả tìm kiếm, hãy tìm ứng dụng Chat, nhấp vào Thêm > Chat.

    • Trong không gian tin nhắn trực tiếp, hãy nhập Hello rồi nhấn enter. Ứng dụng Chat không trả lời vì ứng dụng này đang được gỡ lỗi tích cực.

  6. Trong Visual Studio Code trong môi trường cục bộ, bạn có thể thấy rằng quá trình thực thi bị tạm dừng tại điểm ngắt đã đặt.

    Quá trình thực thi bị tạm dừng tại điểm ngắt đã được đặt

    Hình 6. Quá trình thực thi bị tạm dừng tại điểm ngắt đã đặt.

  7. Khi bạn tiếp tục thực thi từ trình gỡ lỗi của Visual Studio Code trước khi Google Chat hết thời gian chờ, ứng dụng Chat sẽ trả lời Your message : Hello.

  8. Bạn có thể kiểm tra nhật ký yêu cầu và phản hồi HTTP từ giao diện web do ứng dụng ngrok lưu trữ trong môi trường cục bộ.

    Yêu cầu HTTP từ giao diện web do ứng dụng `ngrok` lưu trữ

    Hình 7. Yêu cầu HTTP từ giao diện web do ứng dụng ngrok lưu trữ.

  9. Để thay đổi hành vi của ứng dụng, hãy thay thế Your message bằng Here was your message cùng dòng 35 của index.json. Khi bạn lưu tệp, nodemon sẽ tự động tải lại ứng dụng bằng mã nguồn đã cập nhật và Visual Studio Code vẫn ở chế độ gỡ lỗi.

    Ứng dụng đang chạy và lắng nghe các yêu cầu HTTP trên cổng
`9000` với thay đổi về mã đã tải

    Hình 8. Ứng dụng đang chạy và nghe các yêu cầu HTTP trên cổng 9000 với thay đổi về mã được tải.

  10. Lần này, thay vì gửi thông báo thứ hai Hello trong không gian, bạn có thể chọn yêu cầu HTTP gần đây nhất được ghi lại trên giao diện web do ứng dụng ngrok lưu trữ trong môi trường cục bộ của bạn rồi nhấp vào Replay. Tương tự như lần trước, ứng dụng Chat không trả lời vì ứng dụng này đang được gỡ lỗi.

  11. Khi tiếp tục thực thi từ trình gỡ lỗi của Visual Studio Code, bạn có thể thấy từ giao diện web do ứng dụng ngrok lưu trữ trong môi trường cục bộ rằng ứng dụng sẽ tạo một phản hồi với phiên bản cập nhật của thông báo Here was your message : Hello.

Python

  1. Thu thập thông tin xác thực người dùng mới để sử dụng cho Thông tin xác thực mặc định của ứng dụng:

    gcloud config set project PROJECT_ID
    gcloud auth application-default login

    Thay thế PROJECT_ID bằng mã dự án cho dự án trên đám mây của ứng dụng.

  2. Sao chép kho lưu trữ googleworkspace/google-chat-samples từ GitHub sang môi trường cục bộ, kho lưu trữ này chứa mã ứng dụng:

    git clone https://github.com/googleworkspace/google-chat-samples.git
  3. Từ IDE Visual Studio Code đã cài đặt trong môi trường cục bộ, hãy làm như sau:

    1. Trong một cửa sổ mới, hãy mở thư mục google-chat-samples/python/avatar-app.
    2. Tạo một môi trường ảo mới cho Python env và kích hoạt môi trường đó:

      virtualenv env
      source env/bin/activate
    3. Cài đặt tất cả phần phụ thuộc dự án bằng pip trong môi trường ảo:

      pip install -r requirements.txt
    4. Tạo tệp .vscode/launch.json trong thư mục gốc và định cấu hình một lần khởi chạy có tên là Debug Watch để kích hoạt ứng dụng từ mô-đun functions-framework trên cổng 9000 ở chế độ gỡ lỗi trên môi trường ảo env:

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "python",
              "request": "launch",
              "name": "Debug Watch",
              "python": "${workspaceFolder}/env/bin/python3",
              "module": "functions_framework",
              "args": [
                  "--target", "avatar_app",
                  "--port", "9000",
                  "--debug"
              ]
          }]
      }
      
    5. Thêm một điểm ngắt tạm dừng quá trình xử lý yêu cầu HTTP trong tệp main.pybắt đầu chạy và gỡ lỗi bằng cấu hình Debug Watch đã thêm trước đó. Ứng dụng hiện đang chạy và theo dõi các yêu cầu HTTP trên cổng 9000.

      Ứng dụng đang chạy và lắng nghe các yêu cầu HTTP trên cổng "9000"

      Hình 3. Ứng dụng đang chạy và lắng nghe các yêu cầu HTTP trên cổng 9000.

  4. Chạy ứng dụng ngrok trong môi trường cục bộ:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

    Thay thế NGROK_STATIC_DOMAIN bằng miền tĩnh trong tài khoản ngrok. Tất cả các yêu cầu hiện được chuyển hướng đến môi trường cục bộ và cổng mà ứng dụng sử dụng.

    Thiết bị đầu cuối có máy chủ `ngrok` đang chạy và chuyển hướng

    Hình 4. Cổng kết nối có máy chủ ngrok đang chạy và chuyển hướng.

  5. Giao diện web cũng được khởi động trên máy chủ cục bộ của bạn bằng ứng dụng ngrok, bạn có thể theo dõi tất cả hoạt động bằng cách mở giao diện web đó trong trình duyệt.

    Giao diện web do ứng dụng "ngrok" lưu trữ không hiển thị yêu cầu HTTP nào

    Hình 5. Giao diện web do ứng dụng ngrok lưu trữ không hiển thị yêu cầu HTTP nào.

  6. Kiểm thử ứng dụng Chat bằng cách gửi tin nhắn trực tiếp:

    • Mở Google Chat.

      Chuyển đến Google Chat

    • Nhấp vào biểu tượng Cuộc trò chuyện mới .

    • Trong hộp thoại, hãy nhập tên của ứng dụng Chat.

    • Trong kết quả tìm kiếm, hãy tìm ứng dụng Chat, nhấp vào Thêm > Chat.

    • Trong không gian tin nhắn trực tiếp, hãy nhập Hey! rồi nhấn enter. Ứng dụng Chat không trả lời vì đang được gỡ lỗi tích cực.

  7. Trong Visual Studio Code trong môi trường cục bộ, bạn có thể thấy rằng quá trình thực thi bị tạm dừng tại điểm ngắt đã đặt.

    Quá trình thực thi bị tạm dừng tại điểm ngắt đã được đặt

    Hình 6. Quá trình thực thi bị tạm dừng tại điểm ngắt đã đặt.

  8. Khi bạn tiếp tục thực thi từ trình gỡ lỗi của Visual Studio Code trước khi Google Chat hết thời gian chờ, ứng dụng Chat sẽ trả lời bằng tên và hình đại diện của bạn trong thư.

  9. Bạn có thể kiểm tra nhật ký yêu cầu và phản hồi HTTP từ giao diện web do ứng dụng ngrok lưu trữ trong môi trường cục bộ.

    Yêu cầu HTTP từ giao diện web do ứng dụng `ngrok` lưu trữ

    Hình 7. Yêu cầu HTTP từ giao diện web do ứng dụng ngrok lưu trữ.

  10. Để thay đổi hành vi của ứng dụng, hãy thay thế Hello bằng Hey cùng dòng 51 của tệp main.py. Khi bạn lưu tệp, Visual Studio Code sẽ tự động tải lại ứng dụng bằng mã nguồn đã cập nhật và vẫn ở chế độ gỡ lỗi.

    Ứng dụng đang chạy và lắng nghe các yêu cầu HTTP trên cổng
`9000` với thay đổi về mã đã tải

    Hình 8. Ứng dụng đang chạy và nghe các yêu cầu HTTP trên cổng 9000 với thay đổi về mã được tải.

  11. Lần này, thay vì gửi thông báo thứ hai Hey! trong không gian, bạn có thể chọn yêu cầu HTTP gần đây nhất được ghi lại trên giao diện web do ứng dụng ngrok lưu trữ trong môi trường cục bộ của bạn rồi nhấp vào Replay. Tương tự như lần trước, ứng dụng Chat không trả lời vì đang được gỡ lỗi.

  12. Khi tiếp tục thực thi từ trình gỡ lỗi của Visual Studio Code, bạn có thể thấy từ giao diện web do ứng dụng ngrok lưu trữ trong môi trường cục bộ rằng ứng dụng sẽ tạo một phản hồi với phiên bản cập nhật của thông báo.

Java

  1. Thu thập thông tin xác thực người dùng mới để sử dụng cho Thông tin xác thực mặc định của ứng dụng:

    gcloud config set project PROJECT_ID
    gcloud auth application-default login

    Thay thế PROJECT_ID bằng mã dự án cho dự án trên đám mây của ứng dụng.

  2. Sao chép kho lưu trữ googleworkspace/google-chat-samples từ GitHub trong môi trường cục bộ, kho lưu trữ này chứa mã ứng dụng:

    git clone https://github.com/googleworkspace/google-chat-samples.git
  3. Từ IDE Visual Studio Code đã cài đặt trong môi trường cục bộ, hãy làm như sau:

    1. Trong một cửa sổ mới, hãy mở thư mục google-chat-samples/java/avatar-app.
    2. Định cấu hình dự án Maven để chạy ứng dụng App trên cổng 9000 cục bộ bằng cách thêm trình bổ trợ bản dựng Khung chức năng trên đám mây function-maven-plugin trong tệp pom.xml:

      ...
      <plugin>
          <groupId>com.google.cloud.functions</groupId>
          <artifactId>function-maven-plugin</artifactId>
          <version>0.11.0</version>
          <configuration>
              <functionTarget>App</functionTarget>
              <port>9000</port>
          </configuration>
      </plugin>
      ...
      
    3. Giờ đây, bạn có thể chạy ứng dụng này trên máy tính ở chế độ gỡ lỗi:

      mvnDebug function:run
      Preparing to execute Maven in debug mode
      Listening for transport dt_socket at address: 8000
    4. Tạo tệp .vscode/launch.json trong thư mục gốc và định cấu hình một lần khởi chạy có tên Remote Debug Watch đính kèm vào ứng dụng đã khởi chạy trước đó bằng cổng 8000:

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "java",
              "request": "attach",
              "name": "Remote Debug Watch",
              "projectName": "http-function",
              "hostName": "localhost",
              "port": 8000
          }]
      }
      
    5. Thêm một điểm ngắt tạm dừng quá trình xử lý yêu cầu HTTP trong tệp App.javabắt đầu đính kèm và gỡ lỗi bằng cấu hình Remote Debug Watch đã thêm trước đó. Ứng dụng hiện đang chạy và theo dõi các yêu cầu HTTP trên cổng 9000.

      Ứng dụng đang chạy và lắng nghe các yêu cầu HTTP trên cổng &quot;9000&quot;

      Hình 3. Ứng dụng đang chạy và lắng nghe các yêu cầu HTTP trên cổng 9000.

  4. Chạy ứng dụng ngrok trong môi trường cục bộ:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000

    Thay thế NGROK_STATIC_DOMAIN bằng miền tĩnh trong tài khoản ngrok. Tất cả các yêu cầu hiện được chuyển hướng đến môi trường cục bộ và cổng mà ứng dụng sử dụng.

    Thiết bị đầu cuối có máy chủ `ngrok` đang chạy và chuyển hướng

    Hình 4. Cổng kết nối có máy chủ ngrok đang chạy và chuyển hướng.

  5. Giao diện web cũng được khởi động trên máy chủ cục bộ của bạn bằng ứng dụng ngrok, bạn có thể theo dõi tất cả hoạt động bằng cách mở giao diện web đó trong trình duyệt.

    Giao diện web do ứng dụng &quot;ngrok&quot; lưu trữ không hiển thị yêu cầu HTTP nào

    Hình 5. Giao diện web do ứng dụng ngrok lưu trữ không hiển thị yêu cầu HTTP nào.

  6. Kiểm thử ứng dụng Chat bằng cách gửi tin nhắn trực tiếp:

    • Mở Google Chat.

      Chuyển đến Google Chat

    • Nhấp vào biểu tượng Cuộc trò chuyện mới .

    • Trong hộp thoại, hãy nhập tên của ứng dụng Chat.

    • Trong kết quả tìm kiếm, hãy tìm ứng dụng Chat, nhấp vào Thêm > Chat.

    • Trong không gian tin nhắn trực tiếp, hãy nhập Hey! rồi nhấn enter. Ứng dụng Chat không trả lời vì đang được gỡ lỗi tích cực.

  7. Trong Visual Studio Code trong môi trường cục bộ, bạn có thể thấy rằng quá trình thực thi bị tạm dừng tại điểm ngắt đã đặt.

    Quá trình thực thi bị tạm dừng tại điểm ngắt đã được đặt

    Hình 6. Quá trình thực thi bị tạm dừng tại điểm ngắt đã đặt.

  8. Khi bạn tiếp tục thực thi từ trình gỡ lỗi của Visual Studio Code trước khi Google Chat hết thời gian chờ, ứng dụng Chat sẽ trả lời bằng tên và hình đại diện của bạn trong thư.

  9. Bạn có thể kiểm tra nhật ký yêu cầu và phản hồi HTTP từ giao diện web do ứng dụng ngrok lưu trữ trong môi trường cục bộ.

    Yêu cầu HTTP từ giao diện web do ứng dụng `ngrok` lưu trữ

    Hình 7. Yêu cầu HTTP từ giao diện web do ứng dụng ngrok lưu trữ.

  10. Để thay đổi hành vi của ứng dụng, hãy thay thế Hello bằng Hey cùng dòng 55 của tệp App.java, khởi động lại quy trình mvnDebug và khởi chạy lại Remote Debug Watch để đính kèm lại và bắt đầu lại quá trình gỡ lỗi.

  11. Lần này, thay vì gửi thông báo thứ hai Hey! trong không gian, bạn có thể chọn yêu cầu HTTP gần đây nhất được ghi lại trên giao diện web do ứng dụng ngrok lưu trữ trong môi trường cục bộ của bạn rồi nhấp vào Replay. Tương tự như lần trước, ứng dụng Chat không trả lời vì ứng dụng này đang được gỡ lỗi.

  12. Khi tiếp tục thực thi từ trình gỡ lỗi của Visual Studio Code, bạn có thể thấy từ giao diện web do ứng dụng ngrok lưu trữ trong môi trường cục bộ rằng ứng dụng sẽ tạo một phản hồi với phiên bản cập nhật của thông báo.

Gỡ lỗi từ môi trường từ xa

Trong phần này, bạn tương tác với ứng dụng Chat thực thi trên môi trường từ xa.

Gỡ lỗi từ môi trường từ xa

Hình 9. Gỡ lỗi từ môi trường từ xa.

Điều kiện tiên quyết

  • Một không gian tin nhắn trực tiếp bằng ứng dụng Chat. Bạn có thể làm theo phần Kiểm thử ứng dụng Chat của Hướng dẫn bắt đầu nhanh và tìm ứng dụng Chat để bắt đầu một không gian tin nhắn trực tiếp.
  • Ứng dụng của bạn chạy trong môi trường từ xa với trình gỡ lỗi được bật trên một cổng nhất định, được tham chiếu là REMOTE_DEBUG_PORT trong hướng dẫn của hướng dẫn này.
  • Môi trường cục bộ có thể ssh đến môi trường từ xa.
  • Một IDE được thiết lập trong môi trường cục bộ của bạn có thể gỡ lỗi. Chúng tôi sử dụng Visual Studio Code IDE và các tính năng gỡ lỗi mặc định của IDE này trong hướng dẫn này để minh hoạ.

Kết nối môi trường cục bộ và từ xa

Trong môi trường cục bộ mà bạn muốn bắt đầu kết nối máy khách gỡ lỗi, hãy thiết lập một đường hầm SSH:

ssh -L LOCAL_DEBUG_PORT:localhost:REMOTE_DEBUG_PORT REMOTE_USERNAME@REMOTE_ADDRESS

Thay thế nội dung sau:

  • LOCAL_DEBUG_PORT: Cổng gỡ lỗi trong môi trường cục bộ.
  • REMOTE_USERNAME: Tên người dùng trong môi trường từ xa.
  • REMOTE_ADDRESS: Địa chỉ của môi trường từ xa.
  • REMOTE_DEBUG_PORT: Cổng gỡ lỗi trong môi trường từ xa.

Cổng gỡ lỗi trong môi trường cục bộ của bạn hiện đã được liên kết với cổng gỡ lỗi trong môi trường từ xa.

Bắt đầu gỡ lỗi

Từ IDE Visual Studio Code đã cài đặt trong môi trường cục bộ, hãy làm như sau:

  1. Trong một cửa sổ mới, hãy mở mã nguồn của ứng dụng.
  2. Tạo tệp .vscode/launch.json trong thư mục gốc và định cấu hình một lần chạy có tên là Debug Remote đính kèm vào cổng gỡ lỗi trong môi trường cục bộ:

    Node.js

    {
        "version": "0.2.0",
        "configurations": [{
            "type": "node",
            "request": "attach",
            "name": "Debug Remote",
            "address": "127.0.0.1",
            "port": LOCAL_DEBUG_PORT
        }]
    }
    

    Python

    {
        "version": "0.2.0",
        "configurations": [{
            "type": "python",
            "request": "attach",
            "name": "Debug Remote",
            "connect": {
                "host": "127.0.0.1",
                "port": LOCAL_DEBUG_PORT
            }
        }]
    }
    

    Java

    {
        "version": "0.2.0",
        "configurations": [{
            "type": "java",
            "request": "attach",
            "name": "Debug Remote",
            "hostName": "127.0.0.1",
            "port": LOCAL_DEBUG_PORT
        }]
    }
    

    Thay thế LOCAL_DEBUG_PORT bằng cổng gỡ lỗi trong môi trường cục bộ.

  3. Thêm một điểm ngắt trong mã nguồn của ứng dụng để tạm dừng quá trình xử lý yêu cầu HTTP và bắt đầu chạy và gỡ lỗi bằng cấu hình Debug Remote đã thêm trước đó.

Trong không gian tin nhắn trực tiếp bằng ứng dụng Chat, hãy nhập bất kỳ nội dung nào bạn muốn kiểm thử rồi nhấn enter. Ứng dụng Chat của bạn không trả lời vì ứng dụng này đang được gỡ lỗi trong IDE Visual Studio Code.