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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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