ข้อมูลอัปเดตแบบเรียลไทม์ในส่วนขยาย

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

  • Web Push หรือ Push API เป็นมาตรฐานเว็บที่ให้คุณส่งและรับข้อความในส่วนขยาย Chrome จากผู้ให้บริการพุชใดก็ได้ หรือแม้แต่เว็บเซิร์ฟเวอร์ของคุณเอง
  • chrome.gcm เป็น API เฉพาะของส่วนขยายแบบเดิมที่ช่วยให้คุณส่งและรับข้อความได้โดยใช้ Firebase Cloud Messaging
  • WebSockets เป็นโปรโตคอลระดับต่ำที่ให้คุณเปิดการเชื่อมต่อแบบ 2 ทิศทางระหว่างส่วนขยาย Chrome กับเซิร์ฟเวอร์ได้

สถานการณ์ที่พบบ่อย

ต่อไปนี้เป็นสถานการณ์ทั่วไปบางส่วนในส่วนขยาย Chrome ซึ่งการสื่อสารแบบเรียลไทม์เป็นสิ่งสำคัญ

แจ้งให้ผู้ใช้ทราบการเปลี่ยนแปลงล่าสุด

หากคุณซิงค์ไฟล์ การตั้งค่า หรือข้อมูลอื่นๆ ระหว่างผู้ใช้หลายคน Web Push เป็นวิธีที่เหมาะสมที่สุดในการส่งการอัปเดตแบบเงียบไปยังส่วนขยายเพื่อแจ้งให้ส่วนขยายอัปเดตสถานะจากเซิร์ฟเวอร์

คุณจะให้ผู้ใช้รายงานข้อบกพร่องหรือปัญหาไหม คุณสามารถผสานรวมกับผู้ให้บริการพุช เพื่อแจ้งให้ทราบในส่วนขยายโดยตรงทันทีที่คุณมีอัปเดตที่จะแชร์

ส่งการแจ้งเตือนไปยังผู้ใช้

แม้ว่าจะส่งการแจ้งเตือนฝั่งไคลเอ็นต์โดยสมบูรณ์ได้ แต่หากคุณมีตรรกะฝั่งเซิร์ฟเวอร์ที่กำหนดว่าต้องส่งการแจ้งเตือนใคร อะไร ที่ไหน หรือเมื่อใด เมื่อเทียบกับเว็บพุช ก็เป็นตัวเลือกที่พิสูจน์ได้ในอนาคตมากที่สุด

พุชเป็นวิธีที่ดีที่สุดในการส่งข้อความถึงผู้ใช้เพียงบางส่วน แม้ว่า Firebase Cloud Messaging จะมีหัวข้อ (หรือที่รู้จักกันในชื่อแชแนล) แต่มีให้ใช้งานใน HTTP Cloud Messaging API เท่านั้น ซึ่งแตกต่างจากเวอร์ชันเดิมที่ chrome.gcm ใช้ หากต้องการส่งข้อความในวงกว้างถึงผู้ใช้ทุกคน รวมถึงผู้ใช้ใน Chrome เวอร์ชันเดิม (ก่อน Chrome 121) ตัวเลือกที่เหมาะสมคือ chrome.gcm chrome.gcm สร้างขึ้นจาก API การรับส่งข้อความของ Firebase รุ่นเดิม ซึ่งรองรับการใช้งานใน Chrome มานานกว่าทศวรรษแล้ว

คุณสามารถใช้ Web Push หรือ chrome.gcm เพื่อส่งการแจ้งเตือนไปยังผู้ใช้เมื่อมีสิ่งสำคัญเกิดขึ้นกับผู้ใช้ เช่น เมื่อมีข้อความใหม่เข้ามาหรือเมื่อมีการแชร์ไฟล์

การรับส่งข้อความโต้ตอบแบบทันที

ต้องการการสื่อสารแบบสองทางบ่อยๆ ใช่ไหม Web Socket อาจเป็นตัวเลือกที่ดีที่สุดสำหรับคุณ ซึ่งจะเปิดการเชื่อมต่อแบบ 2 ทิศทางระหว่างส่วนขยายและเซิร์ฟเวอร์ (หรือแม้แต่แชร์กับผู้ใช้รายอื่นโดยตรง) ทำให้คุณสามารถแลกเปลี่ยนข้อมูลและข้อความ ได้แบบเรียลไทม์ แม้จะเป็นตัวเลือกที่ยอดเยี่ยมบนเว็บ แต่ก็มีข้อจำกัดบางประการเกี่ยวกับส่วนขยายที่คุณต้องคำนึงถึงหากวางแผนจะใช้

ในส่วนที่เหลือของคู่มือนี้ เราจะอธิบายถึงตัวเลือกที่มีอยู่อย่างละเอียด

ข้อความ Push ด้วย Push API

คุณสามารถใช้ Push API เพื่อใช้บริการพุชจากผู้ให้บริการใดก็ได้เพื่อส่งข้อความ Push และข้อความ ระบบจะประมวลผลพุชจาก Push API โดยโปรแกรมทำงานของบริการทันทีที่ได้รับ หากส่วนขยายถูกระงับ การพุช จะปลุกระบบให้กลับมาทำงานอีกครั้ง ขั้นตอนการใช้ส่วนขยายนี้ในส่วนขยายจะเหมือนกับที่คุณใช้ในเว็บแบบเปิด

ข้อความ Push ด้วย chrome.gcm

API chrome.gcm มีการเชื่อมต่อโดยตรงกับ Firebase Cloud Messaging (FCM) ซึ่งเป็นบริการสำหรับส่งอัปเดตแบบเรียลไทม์ไปยังเว็บแอปพลิเคชันและแอปบนอุปกรณ์เคลื่อนที่ ซึ่งเป็น API ส่วนขยายเฉพาะของ Chrome ที่เพิ่มเข้ามาหลายปีก่อนที่ Push จะพร้อมให้บริการในเบราว์เซอร์ โดยสร้างขึ้นโดยใช้ HTTP API เดิมของ Firebase (ตอนนี้เลิกใช้งานแล้ว) แม้ว่าจะมีการเลิกใช้งาน API ที่อื่นแล้ว แต่ก็ไม่ได้เลิกใช้งานในส่วนขยาย พวกเขาจะเดินหน้าต่อไปเพื่ออนาคตอันใกล้ แต่เนื่องจากเป็นแบ็กเอนด์เวอร์ชันพุชแบบเดิม จึงไม่มีฟีเจอร์ต่างๆ เช่น Topics

แม้ว่าบริการแบ็กเอนด์ FCM จะเป็นข้อกำหนดที่ยากสำหรับการแจ้งเตือนเพื่อเข้าถึงผู้ใช้ใน Chrome แต่คุณไม่จำเป็นต้องใช้ chrome.gcm เพื่อส่งข้อความ ผู้ให้บริการพุชทั้งหมดจะส่งและรับข้อความและเหตุการณ์ไปยังบัญชี Firebase โดยใช้พุชบนเว็บได้ แม้ว่า API นี้จะยังเป็น Extension API ของ Chrome ที่รองรับอย่างสมบูรณ์ แต่แนวทางปฏิบัติแนะนำคือให้เลือกใช้มาตรฐานเว็บ เช่น Push API กับส่วนขยายที่ต้องการเช่นนี้ หากกรณีการใช้งานของคุณทำงานได้ดีที่สุดด้วย chrome.gcm เรามีวิธีการโดยละเอียดเกี่ยวกับวิธีตั้งค่า chrome.gcm ตั้งแต่ต้น

รับส่งข้อความแบบเรียลไทม์ด้วย WebSockets

WebSockets เป็นรากฐานสำคัญของการรับส่งข้อความแบบเรียลไทม์บนเว็บมานานกว่าทศวรรษแล้ว เครื่องมือเหล่านี้เป็นตัวเลือกสำหรับเหตุการณ์แบบเรียลไทม์บนเว็บที่ให้การสนทนาแบบ 2 ทิศทางอย่างต่อเนื่อง WebSockets ทำงานในคอมโพเนนต์ส่วนขยายที่หลากหลาย ไม่ว่าจะเป็นสคริปต์เนื้อหา ป๊อปอัป แผงด้านข้าง และผู้ปฏิบัติงานบริการเบื้องหลัง แม้จะเป็นตัวเลือกที่ยอดเยี่ยมบนเว็บโดยทั่วไป แต่ก็มีข้อจำกัดเกี่ยวกับส่วนขยายที่คุณต้องคำนึงถึงหากวางแผนจะใช้

ไม่เหมาะกับข้อความ Push

เนื่องจาก WebSocket ทำงานในแพลตฟอร์มเว็บ แทนที่จะใช้ API แพลตฟอร์มส่วนขยาย เช่น chrome.gcm ระบบของ Chrome จึงไม่มีวิธีปลุกส่วนขยายเมื่อเริ่มเชื่อมต่อ Websocket นอกส่วนขยาย

การเชื่อมต่อที่ใช้งานอยู่เท่านั้น

Chrome จะระงับส่วนขยายที่ไม่ได้ใช้งานหลังจาก 30 วินาที มีระบบการเรียนรู้มากมายใน Chrome เพื่อระบุว่าส่วนขยายนั้น "กำลังใช้งานอยู่" หรือไม่ ซึ่งหนึ่งในนั้นคือการเชื่อมต่อ WebSocket ที่ใช้งานอยู่ Chrome จะไม่ระงับส่วนขยายที่ส่งหรือรับข้อความ WebSocket ในช่วง 30 วินาทีล่าสุด หากคุณใช้ WebSockets ในส่วนขยายอยู่และต้องตรวจสอบว่าไม่ได้ปิดก่อนเวลาอันควร คุณสามารถส่งข้อความแจ้งสถานะเพื่อคงการเชื่อมต่อไว้ ซึ่งรวมถึงการส่งข้อความไปยังเซิร์ฟเวอร์เป็นระยะๆ เพื่อแจ้งให้ทั้ง Chrome และ Chrome ทราบว่าคุณยังมีการใช้งานอยู่ ดูตัวอย่างวิธีทำให้เว็บซ็อกเก็ตทำงานอย่างไม่มีกำหนดได้ในเอกสารประกอบเกี่ยวกับ WebSocket