หน้านี้จะอธิบายวิธีใช้ API เครือข่ายนำส่งข้อมูล (CDN) บนระบบของ Google Meet Enterprise สำหรับสตรีมมิงแบบสดของ Google Meet
โซลูชัน API ที่อธิบายไว้ที่นี่ช่วยให้ลูกค้าใช้ชุดฟีเจอร์ทั้งหมดของ Meet eCDN ได้โดยไม่ต้องเปิดเผยข้อมูล IP ส่วนตัวให้ Google คุณสามารถกําหนดเว็บเซอร์วิสใหม่ในสถานที่ในเครือข่ายของคุณเองซึ่งส่งรหัสแทนข้อมูลที่อยู่ IP ส่วนตัว
ภาพรวมของ Meet eCDN
eCDN สร้างขึ้นใน Meet และจะเริ่มต้นระบบโดยอัตโนมัติในระหว่างสตรีมแบบสดหลังจากที่ผู้ดูแลระบบ Google Workspace ตั้งค่าแล้ว เมื่อเปิดใช้ eCDN ของ Meet ผู้ชมไลฟ์สดภายในเครือข่ายในพื้นที่จะแชร์สื่อที่ไลฟ์สดกับคนอื่นๆ ในเครือข่ายได้ผ่านการแชร์แบบ peer-to-peer (P2P) อุปกรณ์ส่วนใหญ่จะได้รับสื่อที่ไลฟ์สดจากผู้ที่อยู่ใกล้เคียงและไม่จำเป็นต้องดึงข้อมูลจากเซิร์ฟเวอร์ของ Google วิธีนี้ช่วยลดแบนด์วิดท์ทั้งหมดที่ผู้ชมใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าและใช้ eCDN ของ Meet ได้ที่การจัดไลฟ์สดขนาดใหญ่
eCDN กําหนดให้ผู้ชมสตรีมมิงแบบสดของ Meet ต้องจัดเรียงเป็นกลุ่มการเพียร์ กลุ่มการเพียร์คือกลุ่มโหนดที่ได้รับอนุญาตให้แชร์สื่อกัน อุปกรณ์ในกลุ่มการเพียร์จะได้รับอนุญาตให้เพียร์หรือถูกบล็อกจากการเพียร์ก็ได้ อุปกรณ์ที่อนุญาตจะเชื่อมต่อกับอุปกรณ์อื่นๆ ในกลุ่มการเพียร์เดียวกันเท่านั้น ดูข้อมูลเพิ่มเติมเกี่ยวกับกลุ่มการเพียร์ได้ที่หัวข้อก่อนเริ่มจัดไลฟ์สดขนาดใหญ่
กรณีที่ควรใช้ 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 ซึ่งจะทำให้ผู้ใช้ไม่สามารถประหยัดแบนด์วิดท์ได้
บริการของคุณต้องตั้งค่าส่วนหัวกลไกการแชร์ทรัพยากรข้ามโดเมน (CORS) ต่อไปนี้
Access-Control-Allow-Origin: meet.google.com
Access-Control-Allow-Headers: GET, POST, OPTIONS
Access-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:
{
"result": "PEERING_GROUP_ID",
"error": null,
}
ตารางต่อไปนี้แสดงรูปแบบคำตอบที่คาดไว้
สถานะ HTTP | ข้อผิดพลาด | รหัสกลุ่มการเพียร์ | ปฏิกิริยาของลูกค้า |
---|---|---|---|
200 | Null | สตริงที่ไม่ใช่ค่าว่าง | ระบบควรจัดเรียงไคลเอ็นต์เป็นกลุ่มการเพียร์และเชื่อมต่อกับเซิร์ฟเวอร์เครื่องมือติดตาม eCDN |
200 | NOT_FOUND |
Null | ไคลเอ็นต์สิ้นสุดเซสชัน eCDN |
200 | BLOCKED |
Null | ไคลเอ็นต์สิ้นสุดเซสชัน eCDN |
200 | สตริงอื่นๆ ที่ไม่ใช่สตริงว่าง | Null | ไคลเอ็นต์สิ้นสุดเซสชัน eCDN |
302 (พบ) | ลูกค้าจะเปลี่ยนเส้นทางไปยัง URL ใหม่ที่ระบุในส่วนหัว Location ของเนื้อหาการตอบกลับ |
||
รหัสสถานะอื่นๆ | สตริงใดก็ได้ | สตริงใดก็ได้ | ไคลเอ็นต์สิ้นสุดเซสชัน eCDN |
การแลกเปลี่ยนข้อมูลข้อเสนอและคำตอบ SDP
หากต้องการเริ่มต้นการเชื่อมต่อ WebRTC อุปกรณ์ต้องแลกเปลี่ยนข้อเสนอและคำตอบ SDP รวมถึงตัวเลือก Interactive Connectivity Establishment (ICE) ที่มีข้อมูล IP ส่วนตัว ซึ่งเป็นส่วนหนึ่งของกระบวนการส่งสัญญาณ WebRTC
ไคลเอ็นต์ต้องเข้ารหัสตัวเลือก ICE ภายในเครือข่ายผ่าน API ของ Meet eCDN ในองค์กร โดยใช้เมธอด 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" // raw SDP data
},
Error response:
{
"result": null,
"error": "ERROR_MESSAGE", // error message
}
Response body:
{
"result": "ENCRYPTED_DATA_STRING", // encrypted data as string
"error": null,
}
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเรียกใช้เมธอด decrypt-sdp()
พร้อมกับการตอบกลับข้อผิดพลาดที่อาจเกิดขึ้นและเนื้อหาการตอบกลับที่คาดไว้
POST /v1/decrypt-sdp
Content-Type: application/json
Request body:
{
"data": "ENCRYPTED_DATA_STRING", // encrypted data as string (size limit: 1 MB)
},
Error response:
{
"result": null,
"error": "ERROR_MESSAGE", // error message
}
Response body:
{
"result": "SDP_DATA" // raw 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 ในฐานะผู้ดูแลระบบ โปรดดูลงชื่อเข้าใช้คอนโซลผู้ดูแลระบบ