แก้ไขข้อบกพร่องของแอป Google Chat

ในฐานะนักพัฒนาแอป Google Chat คุณอาจต้องแก้ไขข้อบกพร่องของโค้ดเพื่อทดสอบการเปลี่ยนแปลงหรือแก้ปัญหาที่ซับซ้อน การแก้ไขข้อบกพร่องในแอป Chat ทำได้หลายวิธี ทั้งนี้ขึ้นอยู่กับสถาปัตยกรรมของแอป การทำงานของแอป การติดตั้งใช้งานแอป และค่ากําหนดของคุณ

หน้านี้อธิบายวิธีแก้ไขข้อบกพร่องของแอป HTTP Chat โดยใช้ ngrok ซึ่งเป็นแพลตฟอร์มขาเข้าแบบรวมที่ใช้ทดสอบสภาพแวดล้อมการพัฒนาในเครื่องได้ ในคู่มือนี้ คุณจะได้ทดสอบการเปลี่ยนแปลงโค้ดในสภาพแวดล้อมท้องถิ่นและแก้ปัญหาในสภาพแวดล้อมระยะไกล

แก้ไขข้อบกพร่องจากสภาพแวดล้อมการพัฒนาในเครื่อง

ในส่วนนี้ คุณจะได้โต้ตอบกับแอป Chat ที่ทำงานในสภาพแวดล้อมในเครื่องของคุณ

แก้ไขข้อบกพร่องจากสภาพแวดล้อม
การพัฒนาในเครื่อง

รูปที่ 1 แก้ไขข้อบกพร่องในสภาพแวดล้อมการพัฒนาภายใน

เวิร์กช็อป

Node.js

Python

Java

สิ่งที่ต้องดำเนินการก่อน

Node.js

Python

Java

ทำให้บริการ localhost พร้อมใช้งานแบบสาธารณะ

คุณต้องเชื่อมต่อสภาพแวดล้อมในเครื่องกับอินเทอร์เน็ตเพื่อให้แอป Chat สามารถเข้าถึงได้ แอปพลิเคชัน ngrok ใช้เพื่อเปลี่ยนเส้นทางคำขอ HTTP ที่ส่งไปยัง URL สาธารณะไปยังสภาพแวดล้อมในเครื่องของคุณ

  1. ในเบราว์เซอร์ในสภาพแวดล้อมในเครื่อง ให้ลงชื่อเข้าใช้บัญชี ngrok
  2. ติดตั้งแอปพลิเคชันและตั้งค่า authtoken ในสภาพแวดล้อมท้องถิ่นของคุณ
  3. สร้างโดเมนแบบคงที่ในบัญชี ngrok ซึ่งในวิธีการของคู่มือนี้จะเรียกว่า NGROK_STATIC_DOMAIN

กำหนดค่าแอป Chat

กำหนดค่าแอป Chat ให้ส่งคำขอ HTTP ทั้งหมดไปยังโดเมนแบบคงที่

  1. เปิดหน้า Google Chat API ในคอนโซล Google Cloud โดยทำดังนี้

    ไปที่หน้า Google Chat API

  2. คลิกแท็บการกำหนดค่า

  3. ไปที่ฟีเจอร์อินเทอร์แอกทีฟ > การตั้งค่าการเชื่อมต่อ แล้วตั้งค่าของช่องข้อความ URL ของแอปเป็น

    https://NGROK_STATIC_DOMAIN
    

    แทนที่ NGROK_STATIC_DOMAIN ด้วยโดเมนแบบคงที่ในบัญชี ngrok

  4. คลิกบันทึก

แอป Chat จะส่งคำขอ HTTP ทั้งหมดไปยังโดเมนแบบคงที่

รูปที่ 2 แอป Chat จะส่งคำขอ HTTP ทั้งหมดไปยังโดเมนแบบคงที่ บริการสาธารณะของ ngrok ทำหน้าที่เป็นสะพานเชื่อมระหว่างแอป Chat กับโค้ดของแอปพลิเคชันที่ทำงานภายใน

ทดสอบแอป Chat

คุณสามารถทำให้เครื่องใช้งานได้ กำหนดค่า ทดสอบ แก้ไขข้อบกพร่อง และโหลดแอป Chat ซ้ำโดยอัตโนมัติได้

Node.js

  1. โคลนที่เก็บ googleworkspace/google-chat-samples จาก GitHub ไปยังสภาพแวดล้อมในเครื่อง ซึ่งมีโค้ดของแอปพลิเคชันที่จะเรียกใช้

    git clone https://github.com/googleworkspace/google-chat-samples.git
    
  2. จาก Visual Studio Code IDE ที่ติดตั้งในสภาพแวดล้อมภายในของคุณ ให้ทำดังนี้

    1. ในหน้าต่างใหม่ ให้เปิดโฟลเดอร์ google-chat-samples/node/basic-app
    2. กำหนดค่าแอปพลิเคชันสำหรับการแก้ไขข้อบกพร่องของการโหลดซ้ำอัตโนมัติโดยเพิ่มสคริปต์ 2 รายการในไฟล์ package.json ดังนี้

      {
          ...
          "scripts": {
              ...
              "debug": "node --inspect index.js",
              "debug-watch": "nodemon --watch ./ --exec npm run debug"
          }
          ...
      }
      
    3. ติดตั้งแอปพลิเคชันจากไดเรกทอรีรากดังนี้

      npm install
      
    4. สร้างและกำหนดค่าการเปิดตัวชื่อ Debug Watch ซึ่งทริกเกอร์สคริปต์ debug-watch ด้วยการสร้างไฟล์ .vscode/launch.json ในไดเรกทอรีรากดังนี้

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "node",
              "request": "launch",
              "name": "Debug Watch",
              "cwd": "${workspaceRoot}",
              "runtimeExecutable": "npm",
              "runtimeArgs": ["run-script", "debug-watch"]
          }]
      }
      
    5. เพิ่มเบรกพอยท์ที่หยุดการประมวลผลคำขอ HTTP ชั่วคราวในไฟล์ index.js และเริ่มเรียกใช้และแก้ไขข้อบกพร่องด้วยการกำหนดค่า Debug Watch ที่เพิ่มไว้ก่อนหน้านี้ แอปพลิเคชันกำลังทำงานและรอรับคำขอ HTTP บนพอร์ต 9000

      แอปพลิเคชันกำลังทำงานและรอรับคำขอ HTTP ในพอร์ต "9000"

      รูปที่ 3 แอปพลิเคชันกำลังทำงานและรอรับคำขอ HTTP บนพอร์ต 9000

  3. เปิดแอปพลิเคชัน ngrok ในสภาพแวดล้อมในเครื่องของคุณ:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000
    

    แทนที่ NGROK_STATIC_DOMAIN ด้วยโดเมนแบบคงที่ในบัญชี ngrok ตอนนี้ระบบจะเปลี่ยนเส้นทางคำขอทั้งหมดไปยังสภาพแวดล้อมในท้องถิ่นและพอร์ตที่แอปพลิเคชันใช้

    เทอร์มินัลที่เซิร์ฟเวอร์ "ngrok" กำลังทำงานและเปลี่ยนเส้นทาง

    รูปที่ 4 เทอร์มินัลที่มีเซิร์ฟเวอร์ ngrok กำลังทำงานและเปลี่ยนเส้นทาง

  4. แอปพลิเคชัน ngrok ก็เริ่มต้นอินเทอร์เฟซเว็บบน localhost ด้วย คุณสามารถตรวจสอบกิจกรรมทั้งหมดได้โดยเปิดอินเทอร์เฟซในเบราว์เซอร์

    อินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน "ngrok" ไม่แสดงคำขอ HTTP

    รูปที่ 5 อินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน ngrok ไม่แสดงคำขอ HTTP

  5. ทดสอบแอปใน Chat ด้วยการส่งข้อความส่วนตัวดังนี้

    • เปิด Google Chat

      ไปที่ Google Chat

    • คลิกแชทใหม่

    • ป้อนชื่อแอป Chat ของคุณในกล่องโต้ตอบ

    • ในผลการค้นหา ให้ค้นหาแอป Chat ของคุณ คลิกเพิ่ม > แชท

    • ในพื้นที่ข้อความส่วนตัว ให้พิมพ์ Hello แล้วกด enter แอป Chat ของคุณไม่ตอบกลับเนื่องจากกำลังมีการแก้ไขข้อบกพร่องอย่างต่อเนื่อง

  6. ใน Visual Studio Code ในสภาพแวดล้อมในเครื่อง คุณจะเห็นว่าการดำเนินการหยุดชั่วคราวตามเบรกพอยท์ที่ตั้งค่าไว้

    การดำเนินการจะหยุดชั่วคราวที่เบรกพอยท์ที่ตั้งไว้

    รูปที่ 6 การดำเนินการจะหยุดชั่วคราวที่เบรกพอยท์ที่ตั้งค่าไว้

  7. เมื่อคุณกลับมาดำเนินการกับโปรแกรมแก้ไขข้อบกพร่องของ Visual Studio Code อีกครั้งก่อนที่ Google Chat จะหมดเวลา แอป Chat จะตอบกลับ Your message : Hello

  8. คุณสามารถตรวจสอบบันทึกคำขอ HTTP และการตอบกลับได้จากอินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน ngrok ในสภาพแวดล้อมในเครื่องของคุณ

    คำขอ HTTP จากอินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน "ngrok"

    รูปที่ 7 คำขอ HTTP จากอินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน ngrok

  9. หากต้องการเปลี่ยนลักษณะการทำงานของแอปพลิเคชัน ให้แทนที่ Your message ด้วย Here was your message ในบรรทัด 35 ของ index.json เมื่อคุณบันทึกไฟล์ nodemon จะโหลดแอปพลิเคชันอีกครั้งโดยอัตโนมัติด้วยซอร์สโค้ดที่อัปเดตแล้ว และ Visual Studio Code จะยังคงอยู่ในโหมดแก้ไขข้อบกพร่อง

    แอปพลิเคชันกำลังทำงานและรอรับคำขอ HTTP บนพอร์ต "9000" ที่โหลดการเปลี่ยนแปลงโค้ดแล้ว

    รูปที่ 8 แอปพลิเคชันกำลังทำงานและรอรับคำขอ HTTP บนพอร์ต 9000 ที่โหลดการเปลี่ยนโค้ดแล้ว

  10. ครั้งนี้ คุณสามารถเลือกคำขอ HTTP ล่าสุดที่บันทึกในเว็บอินเทอร์เฟซที่โฮสต์โดยแอปพลิเคชัน ngrok ในสภาพแวดล้อมในเครื่องของคุณได้แทนที่จะส่งข้อความที่ 2 Hello ในพื้นที่ทำงาน แล้วคลิก Replay เหมือนครั้งที่แล้วที่แอป Chat ไม่ตอบกลับเพราะกำลังแก้ไขข้อบกพร่องอยู่

  11. เมื่อกลับมาดำเนินการกับโปรแกรมแก้ไขข้อบกพร่องของ Visual Studio Code อีกครั้ง คุณจะดูได้จากอินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน ngrok ในสภาพแวดล้อมในเครื่องของคุณ ซึ่งแอปพลิเคชันสร้างการตอบกลับด้วยข้อความเวอร์ชันอัปเดต Here was your message : Hello

Python

  1. รับข้อมูลเข้าสู่ระบบของผู้ใช้ใหม่เพื่อใช้กับข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน

    gcloud config set project PROJECT_ID
    gcloud auth application-default login
    

    แทนที่ PROJECT_ID ด้วยรหัสโปรเจ็กต์สำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของแอป

  2. โคลนที่เก็บ googleworkspace/google-chat-samples จาก GitHub ไปยังสภาพแวดล้อมในเครื่องของคุณ โดยที่เก็บโค้ดดังกล่าวมีโค้ดของแอปพลิเคชันดังนี้

    git clone https://github.com/googleworkspace/google-chat-samples.git
    
  3. จาก Visual Studio Code IDE ที่ติดตั้งในสภาพแวดล้อมภายในของคุณ ให้ทำดังนี้

    1. ในหน้าต่างใหม่ ให้เปิดโฟลเดอร์ google-chat-samples/python/avatar-app
    2. สร้างสภาพแวดล้อมเสมือนใหม่สำหรับ Python env และเปิดใช้งาน:

      virtualenv env
      source env/bin/activate
      
    3. ติดตั้งทรัพยากร Dependency ทั้งหมดของโปรเจ็กต์โดยใช้ pip ในสภาพแวดล้อมเสมือนจริงดังนี้

      pip install -r requirements.txt
      
    4. สร้างไฟล์ .vscode/launch.json ในไดเรกทอรีรากและกำหนดค่าการเรียกใช้งานที่ชื่อ Debug Watch ที่ทริกเกอร์แอปพลิเคชันจากโมดูล functions-framework บนพอร์ต 9000 ในโหมดแก้ไขข้อบกพร่องบนสภาพแวดล้อมเสมือน env

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "python",
              "request": "launch",
              "name": "Debug Watch",
              "python": "${workspaceFolder}/env/bin/python3",
              "module": "functions_framework",
              "args": [
                  "--target", "hello_chat",
                  "--port", "9000",
                  "--debug"
              ]
          }]
      }
      
    5. เพิ่มเบรกพอยท์ที่หยุดการประมวลผลคำขอ HTTP ชั่วคราวในไฟล์ main.py และเริ่มเรียกใช้และแก้ไขข้อบกพร่องด้วยการกำหนดค่า Debug Watch ที่เพิ่มไว้ก่อนหน้านี้ แอปพลิเคชันกำลังทำงานและรอรับคำขอ HTTP บนพอร์ต 9000

      แอปพลิเคชันกำลังทำงานและรอรับคำขอ HTTP ในพอร์ต "9000"

      รูปที่ 3 แอปพลิเคชันกำลังทำงานและรอรับคำขอ HTTP บนพอร์ต 9000

  4. เปิดแอปพลิเคชัน ngrok ในสภาพแวดล้อมในเครื่องของคุณ:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000
    

    แทนที่ NGROK_STATIC_DOMAIN ด้วยโดเมนแบบคงที่ในบัญชี ngrok ตอนนี้ระบบจะเปลี่ยนเส้นทางคำขอทั้งหมดไปยังสภาพแวดล้อมในท้องถิ่นและพอร์ตที่แอปพลิเคชันใช้

    เทอร์มินัลที่เซิร์ฟเวอร์ "ngrok" กำลังทำงานและเปลี่ยนเส้นทาง

    รูปที่ 4 เทอร์มินัลที่มีเซิร์ฟเวอร์ ngrok กำลังทำงานและเปลี่ยนเส้นทาง

  5. แอปพลิเคชัน ngrok ก็เริ่มต้นอินเทอร์เฟซเว็บบน localhost ด้วย คุณสามารถตรวจสอบกิจกรรมทั้งหมดได้โดยเปิดอินเทอร์เฟซในเบราว์เซอร์

    อินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน "ngrok" ไม่แสดงคำขอ HTTP

    รูปที่ 5 อินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน ngrok ไม่แสดงคำขอ HTTP

  6. ทดสอบแอปใน Chat ด้วยการส่งข้อความส่วนตัวดังนี้

    • เปิด Google Chat

      ไปที่ Google Chat

    • คลิกแชทใหม่

    • ป้อนชื่อแอป Chat ของคุณในกล่องโต้ตอบ

    • ในผลการค้นหา ให้ค้นหาแอป Chat ของคุณ คลิกเพิ่ม > แชท

    • ในพื้นที่ข้อความส่วนตัว ให้พิมพ์ Hey! แล้วกด enter แอป Chat ของคุณไม่ตอบกลับเนื่องจากกำลังมีการแก้ไขข้อบกพร่อง

  7. ใน Visual Studio Code ในสภาพแวดล้อมในเครื่อง คุณจะเห็นว่าการดำเนินการหยุดชั่วคราวตามเบรกพอยท์ที่ตั้งค่าไว้

    การดำเนินการจะหยุดชั่วคราวที่เบรกพอยท์ที่ตั้งไว้

    รูปที่ 6 การดำเนินการจะหยุดชั่วคราวที่เบรกพอยท์ที่ตั้งค่าไว้

  8. เมื่อคุณกลับมาดำเนินการกับโปรแกรมแก้ไขข้อบกพร่องของ Visual Studio Code ก่อนที่ Google Chat จะหมดเวลา แอป Chat จะตอบกลับด้วยชื่อและรูปโปรไฟล์ของคุณในข้อความ

  9. คุณสามารถตรวจสอบบันทึกคำขอ HTTP และการตอบกลับได้จากอินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน ngrok ในสภาพแวดล้อมในเครื่องของคุณ

    คำขอ HTTP จากอินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน "ngrok"

    รูปที่ 7 คำขอ HTTP จากอินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน ngrok

  10. หากต้องการเปลี่ยนลักษณะการทำงานของแอปพลิเคชัน ให้แทนที่ Hello ด้วย Hey ในบรรทัด 51 ของไฟล์ main.py เมื่อคุณบันทึกไฟล์ Visual Studio Code จะโหลดแอปพลิเคชันอีกครั้งโดยอัตโนมัติด้วยซอร์สโค้ดที่อัปเดตแล้วและจะยังคงอยู่ในโหมดแก้ไขข้อบกพร่อง

    แอปพลิเคชันกำลังทำงานและรอรับคำขอ HTTP บนพอร์ต "9000" ที่โหลดการเปลี่ยนแปลงโค้ดแล้ว

    รูปที่ 8 แอปพลิเคชันกำลังทำงานและรอรับคำขอ HTTP บนพอร์ต 9000 ที่โหลดการเปลี่ยนโค้ดแล้ว

  11. ครั้งนี้ คุณสามารถเลือกคำขอ HTTP ล่าสุดที่บันทึกในเว็บอินเทอร์เฟซที่โฮสต์โดยแอปพลิเคชัน ngrok ในสภาพแวดล้อมในเครื่องของคุณได้แทนที่จะส่งข้อความที่ 2 Hey! ในพื้นที่ทำงาน แล้วคลิก Replay เหมือนครั้งที่แล้วที่แอป Chat ไม่ตอบกลับ เพราะกำลังแก้ไขข้อบกพร่องอยู่

  12. เมื่อกลับมาดำเนินการกับโปรแกรมแก้ไขข้อบกพร่องของ Visual Studio Code อีกครั้ง คุณจะดูได้จากอินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน ngrok ในสภาพแวดล้อมในเครื่องของคุณ ซึ่งแอปพลิเคชันสร้างการตอบกลับด้วยข้อความเวอร์ชันอัปเดต

Java

  1. รับข้อมูลเข้าสู่ระบบของผู้ใช้ใหม่เพื่อใช้กับข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน

    gcloud config set project PROJECT_ID
    gcloud auth application-default login
    

    แทนที่ PROJECT_ID ด้วยรหัสโปรเจ็กต์สำหรับโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของแอป

  2. โคลนที่เก็บ googleworkspace/google-chat-samples จาก GitHub ในสภาพแวดล้อมในเครื่องของคุณ ซึ่งจะมีโค้ดของแอปพลิเคชันดังนี้

    git clone https://github.com/googleworkspace/google-chat-samples.git
    
  3. จาก Visual Studio Code IDE ที่ติดตั้งในสภาพแวดล้อมภายในของคุณ ให้ทำดังนี้

    1. ในหน้าต่างใหม่ ให้เปิดโฟลเดอร์ google-chat-samples/java/avatar-app
    2. กำหนดค่าโปรเจ็กต์ Maven เพื่อเรียกใช้แอปพลิเคชัน HelloChat ในพอร์ต 9000 ในเครื่องโดยเพิ่มปลั๊กอินบิลด์ของเฟรมเวิร์ก Cloud Functions function-maven-plugin ในไฟล์ pom.xml

      ...
      <plugin>
          <groupId>com.google.cloud.functions</groupId>
          <artifactId>function-maven-plugin</artifactId>
          <version>0.11.0</version>
          <configuration>
              <functionTarget>HelloChat</functionTarget>
              <port>9000</port>
          </configuration>
      </plugin>
      ...
      
    3. ตอนนี้คุณเปิดใช้งานภายในเครื่องในโหมดแก้ไขข้อบกพร่องได้แล้ว โดยทำดังนี้

      mvnDebug function:run
      Preparing to execute Maven in debug mode
      Listening for transport dt_socket at address: 8000
      
    4. สร้างไฟล์ .vscode/launch.json ในไดเรกทอรีรูทและกำหนดค่าการเปิดตัวชื่อ Remote Debug Watch ที่แนบกับแอปพลิเคชันที่เคยเปิดตัวด้วยพอร์ต 8000

      {
          "version": "0.2.0",
          "configurations": [{
              "type": "java",
              "request": "attach",
              "name": "Remote Debug Watch",
              "projectName": "http-function",
              "hostName": "localhost",
              "port": 8000
          }]
      }
      
    5. เพิ่มเบรกพอยท์ที่หยุดการประมวลผลคำขอ HTTP ชั่วคราวในไฟล์ HelloChat.java และเริ่มการแนบและแก้ไขข้อบกพร่องด้วยการกำหนดค่า Remote Debug Watch ที่เพิ่มไว้ก่อนหน้านี้ แอปพลิเคชันกำลังทำงานและรอฟังคำขอ HTTP บนพอร์ต 9000

      แอปพลิเคชันกำลังทำงานและรอรับคำขอ HTTP ในพอร์ต &quot;9000&quot;

      รูปที่ 3 แอปพลิเคชันที่ทำงานอยู่และกำลังรอคำขอ HTTP บนพอร์ต 9000

  4. เปิดแอปพลิเคชัน ngrok ในสภาพแวดล้อมในเครื่องของคุณ:

    ngrok http --domain=NGROK_STATIC_DOMAIN 9000
    

    แทนที่ NGROK_STATIC_DOMAIN ด้วยโดเมนแบบคงที่ในบัญชี ngrok ตอนนี้ระบบจะเปลี่ยนเส้นทางคำขอทั้งหมดไปยังสภาพแวดล้อมในท้องถิ่นและพอร์ตที่แอปพลิเคชันใช้

    เทอร์มินัลที่เซิร์ฟเวอร์ &quot;ngrok&quot; กำลังทำงานและเปลี่ยนเส้นทาง

    รูปที่ 4 เทอร์มินัลที่มีเซิร์ฟเวอร์ ngrok กำลังทำงานและเปลี่ยนเส้นทาง

  5. แอปพลิเคชัน ngrok ก็เริ่มต้นอินเทอร์เฟซเว็บบน localhost ด้วย คุณสามารถตรวจสอบกิจกรรมทั้งหมดได้โดยเปิดอินเทอร์เฟซในเบราว์เซอร์

    อินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน &quot;ngrok&quot; ไม่แสดงคำขอ HTTP

    รูปที่ 5 อินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน ngrok ไม่แสดงคำขอ HTTP

  6. ทดสอบแอปใน Chat ด้วยการส่งข้อความส่วนตัวดังนี้

    • เปิด Google Chat

      ไปที่ Google Chat

    • คลิกแชทใหม่

    • ป้อนชื่อแอป Chat ของคุณในกล่องโต้ตอบ

    • ในผลการค้นหา ให้ค้นหาแอป Chat ของคุณ คลิกเพิ่ม > แชท

    • ในพื้นที่ข้อความส่วนตัว ให้พิมพ์ Hey! แล้วกด enter แอป Chat ของคุณไม่ตอบกลับเนื่องจากกำลังมีการแก้ไขข้อบกพร่อง

  7. ใน Visual Studio Code ในสภาพแวดล้อมในเครื่อง คุณจะเห็นว่าการดำเนินการหยุดชั่วคราวตามเบรกพอยท์ที่ตั้งค่าไว้

    การดำเนินการจะหยุดชั่วคราวที่เบรกพอยท์ที่ตั้งค่าไว้

    รูปที่ 6 การดำเนินการจะหยุดชั่วคราวที่เบรกพอยท์ที่ตั้งค่าไว้

  8. เมื่อคุณกลับมาดำเนินการกับโปรแกรมแก้ไขข้อบกพร่องของ Visual Studio Code ก่อนที่ Google Chat จะหมดเวลา แอป Chat จะตอบกลับด้วยชื่อและรูปโปรไฟล์ของคุณในข้อความ

  9. คุณสามารถตรวจสอบบันทึกคำขอ HTTP และการตอบกลับได้จากอินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน ngrok ในสภาพแวดล้อมในเครื่องของคุณ

    คำขอ HTTP จากอินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน &quot;ngrok&quot;

    รูปที่ 7 คำขอ HTTP จากอินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน ngrok

  10. หากต้องการเปลี่ยนการทำงานของแอปพลิเคชัน ให้แทนที่ Hello ด้วย Hey ในบรรทัด 55 ของไฟล์ HelloChat.java รีสตาร์ทกระบวนการ mvnDebug และเปิด Remote Debug Watch อีกครั้งเพื่อแนบและเริ่มต้นการแก้ไขข้อบกพร่องอีกครั้ง

  11. ครั้งนี้ คุณสามารถเลือกคำขอ HTTP ล่าสุดที่บันทึกในเว็บอินเทอร์เฟซที่โฮสต์โดยแอปพลิเคชัน ngrok ในสภาพแวดล้อมในเครื่องของคุณได้แทนที่จะส่งข้อความที่ 2 Hey! ในพื้นที่ทำงาน แล้วคลิก Replay เหมือนครั้งที่แล้วที่แอป Chat ไม่ตอบกลับเพราะกำลังแก้ไขข้อบกพร่องอยู่

  12. เมื่อกลับมาดำเนินการกับโปรแกรมแก้ไขข้อบกพร่องของ Visual Studio Code อีกครั้ง คุณจะดูได้จากอินเทอร์เฟซเว็บที่โฮสต์โดยแอปพลิเคชัน ngrok ในสภาพแวดล้อมในเครื่องของคุณ ซึ่งแอปพลิเคชันสร้างการตอบกลับด้วยข้อความเวอร์ชันอัปเดต

แก้ไขข้อบกพร่องจากสภาพแวดล้อมระยะไกล

ในส่วนนี้ คุณจะได้โต้ตอบกับแอป Chat ที่ทำงานในสภาพแวดล้อมระยะไกล

แก้ไขข้อบกพร่องจากสภาพแวดล้อม
ระยะไกล

รูปที่ 9 แก้ไขข้อบกพร่องจากสภาพแวดล้อมระยะไกล

สิ่งที่ต้องดำเนินการก่อน

  • พื้นที่ข้อความส่วนตัวที่มีแอป Chat คุณสามารถ ทำตามส่วน ทดสอบแอป Chat ของคุณของ คู่มือเริ่มใช้งานฉบับย่อ และค้นหา แอป Chat ของคุณเพื่อเริ่มต้น
  • แอปพลิเคชันของคุณที่ทำงานอยู่ในสภาพแวดล้อมระยะไกลที่เปิดใช้โปรแกรมแก้ไขข้อบกพร่องบนพอร์ตที่กำหนด เราจะอ้างอิงถึง REMOTE_DEBUG_PORT ในวิธีการของคู่มือนี้
  • สภาพแวดล้อมในเครื่องสามารถsshไปยังสภาพแวดล้อมระยะไกลของคุณได้
  • IDE ที่ตั้งค่าไว้ในสภาพแวดล้อมในเครื่องของคุณซึ่งแก้ไขข้อบกพร่องได้ เราใช้ Visual Studio Code IDE และฟีเจอร์การแก้ไขข้อบกพร่องเริ่มต้นในคู่มือนี้เพื่อวัตถุประสงค์ในการอธิบายให้เห็นภาพ

เชื่อมต่อสภาพแวดล้อมในเครื่องและระยะไกล

ในสภาพแวดล้อมในเครื่องที่คุณต้องการเริ่มการเชื่อมต่อไคลเอ็นต์การแก้ไขข้อบกพร่อง ให้ตั้งค่าอุโมงค์ข้อมูล SSH ดังนี้

ssh -L LOCAL_DEBUG_PORT:localhost:REMOTE_DEBUG_PORT REMOTE_USERNAME@REMOTE_ADDRESS

แทนที่ค่าต่อไปนี้

  • LOCAL_DEBUG_PORT: พอร์ตการแก้ไขข้อบกพร่องในสภาพแวดล้อมในเครื่องของคุณ
  • REMOTE_USERNAME: ชื่อผู้ใช้ในสภาพแวดล้อมระยะไกล
  • REMOTE_ADDRESS: ที่อยู่ของสภาพแวดล้อมระยะไกล
  • REMOTE_DEBUG_PORT: พอร์ตแก้ไขข้อบกพร่องในสภาพแวดล้อมระยะไกล

ตอนนี้พอร์ตแก้ไขข้อบกพร่องในสภาพแวดล้อมในเครื่องของคุณลิงก์กับพอร์ตแก้ไขข้อบกพร่องในสภาพแวดล้อมระยะไกลแล้ว

เริ่มแก้ไขข้อบกพร่อง

จาก Visual Studio Code IDE ที่ติดตั้งในสภาพแวดล้อมภายในของคุณ ให้ทำดังนี้

  1. ในหน้าต่างใหม่ ให้เปิดซอร์สโค้ดของแอป
  2. สร้างไฟล์ .vscode/launch.json ในไดเรกทอรีรูทและกำหนดค่าการเปิดตัวชื่อ Debug Remote ที่แนบกับพอร์ตแก้ไขข้อบกพร่องในสภาพแวดล้อมในเครื่องของคุณ

    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
        }]
    }
    

    แทนที่ LOCAL_DEBUG_PORT ด้วยพอร์ตแก้ไขข้อบกพร่องในสภาพแวดล้อมภายใน

  3. เพิ่มเบรกพอยท์ในซอร์สโค้ดของแอปที่จะหยุดการประมวลผลคำขอ HTTP ชั่วคราว และเริ่มเรียกใช้และแก้ไขข้อบกพร่องด้วยการกำหนดค่า Debug Remote ที่เพิ่มไว้ก่อนหน้านี้

ในพื้นที่ข้อความส่วนตัวที่มีแอป Chat ให้พิมพ์ข้อความที่ต้องการทดสอบและกด enter แอป Chat ของคุณไม่ตอบกลับเนื่องจากกำลังแก้ไขข้อบกพร่องอยู่ใน Visual Studio Code IDE