หน้านี้อธิบายวิธีใช้ Google Meet Enterprise Content Delivery Network (eCDN) On-Premises API สำหรับการไลฟ์สดของ Google Meet
โซลูชัน API ที่อธิบายไว้ที่นี่ช่วยให้ลูกค้าใช้ฟีเจอร์ทั้งหมดของ eCDN ของ Meet ได้โดยไม่ต้องเปิดเผยข้อมูล IP ส่วนตัวต่อ Google คุณสามารถกำหนดบริการทางเว็บใหม่ในองค์กรในเครือข่ายของคุณเองซึ่งส่งรหัสแทนข้อมูลที่อยู่ IP ส่วนตัว
ภาพรวมของ eCDN ของ Meet
eCDN มีให้ใช้งานใน Meet และจะเริ่มทำงานโดยอัตโนมัติระหว่างการไลฟ์สดหลังจากที่ผู้ดูแลระบบ Google Workspace ตั้งค่าแล้ว เมื่อเปิดใช้ eCDN ของ Meet ผู้ชมไลฟ์สดภายในเครือข่ายในพื้นที่จะแชร์สื่อที่ไลฟ์สดกับคนอื่นๆ ในเครือข่ายได้ผ่านการแชร์แบบเพียร์ทูเพียร์ (P2P) อุปกรณ์ส่วนใหญ่จะได้รับสื่อที่ไลฟ์สดจากผู้ที่อยู่ใกล้เคียงและไม่จำเป็นต้องดึงข้อมูลจากเซิร์ฟเวอร์ของ Google ซึ่งจะช่วยลดแบนด์วิดท์ทั้งหมดที่ผู้ชมใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าและการใช้ eCDN ของ Meet ได้ที่หัวข้อ การจัดไลฟ์สดขนาดใหญ่
eCDN กำหนดให้ผู้ชมการไลฟ์สดของ Meet ต้องจัดกลุ่มเป็นกลุ่มการเพียร์ กลุ่มการเพียร์คือกลุ่มของโหนดที่ได้รับอนุญาตให้แชร์สื่อกับโหนดอื่นๆ อุปกรณ์ในกลุ่มการเพียร์ได้รับอนุญาตให้เพียร์หรือถูกบล็อกไม่ให้เพียร์ อุปกรณ์ที่ได้รับอนุญาตจะเชื่อมต่อกับอุปกรณ์อื่นๆ ในกลุ่มการเพียร์เดียวกันได้เท่านั้น ดูข้อมูลเพิ่มเติมเกี่ยวกับกลุ่มการเพียร์ได้ที่หัวข้อ ก่อนเริ่มจัดไลฟ์สดขนาดใหญ่ streams
กรณีที่ควรใช้ API
eCDN สามารถสร้างกลุ่มการเพียร์ได้โดยใช้นโยบายการเพียร์ที่แตกต่างกันหลายแบบ ได้แก่ random, subnet หรือ custom rules นโยบายหลังจะแชร์ตารางช่วงเครือข่ายส่วนตัวกับเซิร์ฟเวอร์ติดตาม eCDN ของ Google เพื่อแมปที่อยู่ IP ส่วนตัวของโหนดเพียร์แต่ละโหนดกับกลุ่มการเพียร์ นโยบาย custom rules เป็นโซลูชันที่แนะนำและเหมาะกับสภาพแวดล้อมการใช้งานจริงส่วนใหญ่
อย่างไรก็ตาม นโยบาย custom rules กำหนดให้คุณต้องแชร์โครงสร้างเครือข่ายส่วนตัวส่วนใหญ่กับ Google นอกจากนี้ ผู้ใช้แต่ละรายยังเปิดเผยที่อยู่ IP ส่วนตัวที่ตรวจพบในเครื่องต่อ Google ขณะใช้ eCDN สำหรับบางองค์กร แนวทางด้านความปลอดภัยอาจไม่อนุญาตให้แชร์ข้อมูล IP ส่วนตัว
พัฒนาด้วย Meet eCDN On-Premises API
Meet eCDN On-Premises API มีข้อกำหนดของเว็บเซิร์ฟเวอร์ที่คุณสามารถติดตั้งใช้งานและโฮสต์ในเครื่องในเครือข่ายขององค์กร คุณสามารถสร้างบริการทางเว็บที่กำหนดเองซึ่งเข้ากันได้กับ API เพื่อทำงานทั้งหมดที่ขึ้นอยู่กับข้อมูล IP ส่วนตัวได้ เพื่อไม่ให้แชร์ข้อมูลกับ Google
API ครอบคลุม 2 ขั้นตอนที่สำคัญสำหรับการจับคู่ที่อยู่ IP ส่วนตัว ซึ่งโดยปกติแล้วเซิร์ฟเวอร์ติดตาม eCDN จะจัดการ ได้แก่ การแมปที่อยู่ IP ส่วนตัว กับกลุ่มการเพียร์ และ การแลกเปลี่ยนข้อมูลข้อเสนอและคำตอบของ Session Description Protocol (SDP) ระหว่างการส่งสัญญาณ WebRTC
เมื่อบริการทางเว็บเสร็จสมบูรณ์แล้ว คุณต้องกำหนดค่า
คอนโซลผู้ดูแลระบบให้ใช้นโยบายการเพียร์ On-premises
service และใส่ URL ของบริการทางเว็บที่กำหนดเอง
ข้อกำหนด
หากต้องการเปิดใช้ข้อกำหนดใดข้อกำหนดหนึ่งต่อไปนี้สำหรับองค์กร โปรดขอให้ผู้ดูแลระบบ Google Workspace ดำเนินการ
เว็บเซิร์ฟเวอร์ใดก็ตามที่ใช้ HTTPS สามารถติดตั้งใช้งาน API นี้ได้
ใช้ HTTPS เพื่อป้องกันไม่ให้เกิดข้อผิดพลาดเกี่ยวกับเนื้อหาผสม
ยอมรับและแสดงผลข้อมูล JSON ใช้การเข้ารหัสเนื้อหาใดก็ได้ที่เบราว์เซอร์รองรับ
แสดงปลายทางภายใต้เส้นทาง
/vnโดยที่nคือเวอร์ชัน API ที่เลือก เช่น/v1/get-peering-groupผู้ชมการไลฟ์สดของ Meet สามารถดู URL ของบริการทางเว็บได้ผ่านคอนโซลผู้ดูแลระบบของ Google คุณสามารถตั้งค่า URL ได้ทั่วโลก ต่อหน่วยขององค์กร หรือต่อกลุ่ม ตรวจสอบว่าผู้ชมเชื่อมต่อกับอินสแตนซ์ของบริการที่กำหนดได้ ดูข้อมูลเพิ่มเติมได้ที่หัวข้อ กำหนดค่าคอนโซลผู้ดูแลระบบ
บริการของคุณควรแสดงผลภายใน 2 วินาที มิเช่นนั้น ไคลเอ็นต์ eCDN จะปิดตัวลงและผู้ชมจะดูอีเวนต์สดต่อไปในฐานะผู้ใช้ทั่วไปที่ไม่ใช่ eCDN ซึ่งจะทำให้ผู้ชมไม่ได้รับประโยชน์จากการประหยัดแบนด์วิดท์
บริการของคุณต้องตั้งค่าส่วนหัว Cross-Origin Resource Sharing (CORS) ต่อไปนี้
Access-Control-Allow-Origin: meet.google.comAccess-Control-Allow-Headers: GET, POST, OPTIONSAccess-Control-Allow-Credentials: true
แมปที่อยู่ IP ส่วนตัวกับกลุ่มการเพียร์
ไคลเอ็นต์ eCDN จะโทรทุกครั้งที่พยายามเชื่อมต่อกับเซิร์ฟเวอร์ติดตาม eCDN อีกครั้ง หลังจากที่อุปกรณ์ตรวจพบที่อยู่ IP ส่วนตัวแล้ว ที่อยู่ดังกล่าวจะต้องแมปกับกลุ่มการเพียร์ที่เหมาะสม คุณต้องส่งที่อยู่ IP ส่วนตัวไปยังเซิร์ฟเวอร์ในเครือข่ายและแก้ไขที่อยู่ดังกล่าวด้วยตนเองให้เป็นกลุ่มการเพียร์โดยใช้วิธี get-peering-group() ระบบจะแสดงผลรหัสกลุ่มการเพียร์ในคำตอบ
เมื่อสื่อสารกับ Google ระบบจะส่งรหัสกลุ่มการเพียร์ที่ได้แทนที่อยู่ IP ส่วนตัว
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเรียกใช้วิธี get-peering-group() พร้อมกับคำตอบข้อผิดพลาดที่อาจเกิดขึ้นและเนื้อหาคำตอบที่คาดไว้
POST /v1/get-peering-group
Content-Type: application/json
Request body:
{
"availableIPs": []{
"format": "ipv4"|"ipv6",
"address": "DETECTED_ADDRESS"
}
}
Error response:
{
"result": null,
"error": "ERROR_MESSAGE"
}
Response body:
{
"allowed": boolean,
"result": string,
"error": null
}
ตารางต่อไปนี้แสดงรูปแบบคำตอบที่คาดไว้
| สถานะ HTTP | ข้อผิดพลาด | อนุญาต | ผลลัพธ์ | รีแอ็กชันของไคลเอ็นต์ |
|---|---|---|---|---|
| 200 | null | จริง | สตริงที่ไม่ใช่สตริงว่าง | ระบบจะจัดเรียงไคลเอ็นต์ลงในกลุ่มการเพียร์ที่ระบุและดำเนินการเชื่อมต่อกับเซิร์ฟเวอร์ติดตาม eCDN |
| 200 | null | เท็จ | สตริงที่ไม่ใช่สตริงว่าง | ระบบจะทำเครื่องหมายไคลเอ็นต์ว่าถูกกลุ่มการเพียร์ที่ระบุบล็อก ซึ่งจะแสดงใน เครื่องมือจัดการคุณภาพ Meet (MQT) และสิ้นสุดเซสชัน eCDN |
| 200 | null | สตริงว่าง | ไคลเอ็นต์สิ้นสุดเซสชัน eCDN | |
| 200 | สตริงที่ไม่ใช่สตริงว่าง | ไคลเอ็นต์สิ้นสุดเซสชัน eCDN | ||
| 302 (พบ) | ไคลเอ็นต์จะติดตามการเปลี่ยนเส้นทางไปยัง URL ใหม่ที่ระบุไว้ในส่วนหัว Location ของเนื้อหาคำตอบ |
|||
| รหัสสถานะอื่นๆ | ไคลเอ็นต์สิ้นสุดเซสชัน eCDN |
รูปแบบคำตอบเดิม
ช่อง allowed ไม่ได้เป็นส่วนหนึ่งของรูปแบบคำตอบของเวอร์ชันก่อนหน้า แต่ค่าที่สงวนไว้พิเศษสำหรับ result จะเป็นตัวกำหนดว่าที่อยู่ IP ของผู้ชมจะถูกบล็อกไม่ให้เพียร์หรือไม่
Legacy response body:
{
"result": string,
"error": null,
}
ตารางต่อไปนี้แสดงรูปแบบคำตอบที่คาดไว้หากไม่ได้ตั้งค่าช่อง allowed ในข้อความคำตอบ
| สถานะ HTTP | ข้อผิดพลาด | ผลลัพธ์ | รีแอ็กชันของไคลเอ็นต์ |
|---|---|---|---|
| 200 | null | สตริงที่ไม่ใช่สตริงว่าง | ระบบควรจัดเรียงไคลเอ็นต์ลงในกลุ่มการเพียร์และดำเนินการเชื่อมต่อกับเซิร์ฟเวอร์ติดตาม eCDN |
| 200 | null | NOT_FOUND |
ไคลเอ็นต์สิ้นสุดเซสชัน eCDN |
| 200 | null | BLOCKED |
ไคลเอ็นต์สิ้นสุดเซสชัน eCDN |
| 200 | สตริงที่ไม่ใช่สตริงว่าง | ไคลเอ็นต์สิ้นสุดเซสชัน eCDN | |
| 302 (พบ) | ไคลเอ็นต์จะติดตามการเปลี่ยนเส้นทางไปยัง URL ใหม่ที่ระบุไว้ในส่วนหัว Location ของเนื้อหาคำตอบ |
||
| รหัสสถานะอื่นๆ | ไคลเอ็นต์สิ้นสุดเซสชัน eCDN |
การแลกเปลี่ยนข้อมูลข้อเสนอและคำตอบของ SDP
หากต้องการเริ่มการเชื่อมต่อ WebRTC อุปกรณ์ต้องแลกเปลี่ยนข้อเสนอและคำตอบของ SDP รวมถึงแคนดิเดต Interactive Connectivity Establishment (ICE) ที่มีข้อมูล IP ส่วนตัว โดยจะดำเนินการดังกล่าวเป็นส่วนหนึ่งของกระบวนการส่งสัญญาณ WebRTC
ไคลเอ็นต์ต้องเข้ารหัสแคนดิเดต ICE ภายในเครือข่ายผ่าน Meet eCDN On-Premises API โดยใช้วิธี encrypt-sdp() วิธีนี้ใช้คีย์ที่ไม่เคยเปิดเผยต่อ Google จากนั้นจะส่งข้อเสนอ SDP ที่เข้ารหัสไปยังเพียร์โดยใช้เซิร์ฟเวอร์ติดตาม eCDN จากนั้นเพียร์ไคลเอ็นต์จะถอดรหัสข้อมูลที่ได้รับภายในเครือข่ายโดยใช้วิธี decrypt-sdp() จากนั้น Google จะส่งต่อข้อเสนอและคำตอบระหว่างเพียร์ที่เชื่อมต่อ
เมื่อสร้างการเชื่อมต่อโดยใช้ Meet eCDN On-Premises API แล้ว eCDN จะทำงานตามปกติ เพียร์จะกำหนดเส้นทางสื่อผ่านเครือข่ายการเพียร์ตามปกติ และการรับส่งข้อมูลสื่อจะไม่ผ่านหรือใช้ API
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเรียกใช้วิธี encrypt-sdp() พร้อมกับคำตอบข้อผิดพลาดที่อาจเกิดขึ้นและเนื้อหาคำตอบที่คาดไว้
POST /v1/encrypt-sdp
Content-Type: application/json
Request body:
{
"data": "SDP_DATA"
},
Error response:
{
"result": null,
"error": "ERROR_MESSAGE"
}
Response body:
{
"result": "ENCRYPTED_DATA_STRING",
"error": null
}
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเรียกใช้วิธี decrypt-sdp() พร้อมกับคำตอบข้อผิดพลาดที่อาจเกิดขึ้นและเนื้อหาคำตอบที่คาดไว้
POST /v1/decrypt-sdp
Content-Type: application/json
Request body:
{
"data": "ENCRYPTED_DATA_STRING"
},
Error response:
{
"result": null,
"error": "ERROR_MESSAGE"
}
Response body:
{
"result": "SDP_DATA",
"error": null
}
ตารางต่อไปนี้แสดงรูปแบบคำตอบที่คาดไว้
| สถานะ HTTP | ข้อผิดพลาด | รหัสกลุ่มการเพียร์ | รีแอ็กชันของไคลเอ็นต์ |
|---|---|---|---|
| 200 | null | สตริงที่ไม่ใช่สตริงว่าง | ไคลเอ็นต์คาดว่าจะใช้ข้อมูล SDP ที่เข้ารหัสหรือถอดรหัสอย่างถูกต้อง |
| 200 | สตริงที่ไม่ใช่สตริงว่าง | null | ไคลเอ็นต์สิ้นสุดเซสชัน eCDN |
| 302 (พบ) | ไคลเอ็นต์จะติดตามการเปลี่ยนเส้นทางไปยัง URL ใหม่ที่ระบุไว้ในส่วนหัว Location ของเนื้อหาคำตอบ |
||
| รหัสสถานะอื่นๆ | ค่าใดก็ได้ | ค่าใดก็ได้ | ไคลเอ็นต์สิ้นสุดเซสชัน eCDN |
กำหนดค่าคอนโซลผู้ดูแลระบบ
หากต้องการใช้ Meet eCDN On-Premises API คุณต้องกำหนดค่า eCDN ใน คอนโซลผู้ดูแลระบบ เพื่อใส่ URL ของ บริการทางเว็บที่กำหนดเอง
หากต้องการตั้งค่า eCDN ให้สร้างนโยบายการเพียร์โดยใช้ On-premises service เพื่อจับคู่ข้อมูล IP กับกลุ่มการเพียร์ด้วยตนเอง นอกจากนี้ คุณยังใส่หมายเลขพอร์ตได้หากไม่ได้ใช้พอร์ต 443 ซึ่งเป็นค่าเริ่มต้น URL ควรมีรูปแบบตรงกับ
WEB_SERVICE.example.com:8080 โดยที่ WEB_SERVICE คือชื่อบริการทางเว็บ
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่านโยบายการเพียร์ได้ที่หัวข้อกำหนดค่าการจัดกลุ่ม เครือข่าย
หัวข้อที่เกี่ยวข้อง
หากต้องการดูวิธีใช้ eCDN ของ Meet ให้ทำตามขั้นตอนในหัวข้อการจัด ไลฟ์สดขนาดใหญ่
หากต้องการดูวิธีตั้งค่า eCDN โปรดดูที่หัวข้อ ก่อนเริ่มจัดไลฟ์สดขนาดใหญ่
หากต้องการดูวิธีตั้งค่าเครือข่าย โปรดดูที่หัวข้อ เตรียมเครือข่ายสำหรับการ ประชุมและการไลฟ์สดของ Meet
หากต้องการลงชื่อเข้าใช้คอนโซลผู้ดูแลระบบของ Google ในฐานะผู้ดูแลระบบ โปรดดูที่หัวข้อลงชื่อเข้าใช้ คอนโซลผู้ดูแลระบบ