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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ข้อความแบบเรียลไทม์ด้วย WebSocket

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

ไม่เหมาะสำหรับข้อความ Push

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

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

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