PubNub — คืออะไร, SDK แบบเรียลไทม์และทำงานอย่างไรในแอปพลิเคชัน

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-06-02 เวลาอ่าน: 8 นาที

PubNub คือเครือข่ายระดับโลกสำหรับการส่งข้อความแบบเรียลไทม์ที่ให้โครงสร้างพื้นฐานสำหรับการเผยแพร่และสมัครรับข้อความผ่าน WebSocket ด้วยความหน่วงต่ำที่สุด ออกแบบมาสำหรับแอปพลิเคชันที่ต้องการการส่งข้อมูลที่เชื่อถือได้ภายใต้โหลดสูงและการเชื่อมต่อที่ไม่เสถียร ตามเอกสารอย่างเป็นทางการของ PubNub (2025) แพลตฟอร์มประมวลผลมากกว่า 1 ล้านล้านข้อความ ต่อเดือนสำหรับแอปพลิเคชันกว่า 70,000+ ทั่วโลก

ประเด็นสำคัญ

  • PubNub คือเครือข่ายระดับโลกสำหรับข้อความแบบเรียลไทม์ที่มีศูนย์ข้อมูลมากกว่า 15 แห่งและการส่งที่รับประกัน
  • Pub/Sub ด้วยคีย์ — การเผยแพร่และการสมัครผ่านคีย์ publish/subscribe ที่แยกสิทธิ์การเข้าถึง
  • Stream Controller — การจัดการโฟลว์ข้อความที่รองรับการกรอง การแปลง และการบัฟเฟอร์
  • Presence — การติดตามสถานะออนไลน์ของผู้เข้าร่วมช่องสัญญาณด้วยการตรวจจับหมดเวลา
  • SDK สำหรับมากกว่า 75 แพลตฟอร์ม — ระบบนิเวศไลบรารีไคลเอ็นต์ที่ใหญ่ที่สุดในบริการแบบเรียลไทม์

PubNub คืออะไร?

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

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

ตาม เว็บไซต์อย่างเป็นทางการของ PubNub (2025) แพลตฟอร์มให้บริการแก่แอปพลิเคชันกว่า 70,000 รายการในกว่า 200 ประเทศ ลูกค้าหลักประกอบด้วย Logitech (การจัดการอุปกรณ์ IoT), GoPro (การสตรีมวิดีโอแบบเรียลไทม์), eBay (การซิงโครไนซ์การประมูล) และ Snapchat (แชทและการแจ้งเตือน)

หลักการสำคัญของ PubNub

PubNub สร้างขึ้นบนสามหลักการ: ความเร็ว (ความหน่วงต่ำกว่า 10 มิลลิวินาทีที่เปอร์เซ็นไทล์ที่ 95 ภายในภูมิภาคเดียว), ความน่าเชื่อถือ (การรับประกันการส่งแบบ at-least-once พร้อมลองใหม่อัตโนมัติ) และ ความสามารถในการปรับขนาด (การขยายแนวนอนโดยไม่มีข้อจำกัดจำนวนช่องสัญญาณ) แพลตฟอร์มไม่เก็บข้อความในพื้นที่จัดเก็บระยะยาว — ประวัติสามารถเข้าถึงได้ผ่านบริการ Storage & Playback ที่เชื่อมต่อแยกต่างหาก

PubNub ทำงานอย่างไร

รูปแบบการทำงานของ PubNub ขึ้นอยู่กับรูปแบบการเผยแพร่-สมัครรับแบบคลาสสิก ไคลเอ็นต์ผู้เผยแพร่ส่งข้อความที่ระบุช่องสัญญาณผ่าน PubNub REST API ด้วยคีย์ publish PubNub ส่งข้อความไปยังผู้สมัครรับทั้งหมดของช่องสัญญาณนั้นผ่านการเชื่อมต่อ WebSocket ที่ใช้งานอยู่ ผู้สมัครรับได้รับข้อความผ่านตัวจัดการ Callback ที่ลงทะเบียนใน PubNub SDK

เลเยอร์การขนส่ง ของ PubNub ใช้ WebSocket เป็นโปรโตคอลหลัก โดยมีการสำรองไปยัง HTTP long-polling สำหรับสภาพแวดล้อมที่มีข้อจำกัด SDK จัดการการเชื่อมต่อโดยอัตโนมัติ: สร้าง รักษาการส่งสัญญาณ heartbeat (ทุก 15–60 วินาทีขึ้นอยู่กับเครือข่าย) และเชื่อมต่อใหม่เมื่อขาดการเชื่อมต่อ

แต่ละข้อความใน PubNub ประกอบด้วย เมทาดาตา: UUID ของผู้ส่ง, การประทับเวลา, หมายเลขลำดับ (timetoken) และแฟล็ก (store, replicate, eatAfterRead) Timetoken คือตัวระบุ PubNub เฉพาะที่ไม่ซ้ำกันซึ่งขึ้นอยู่กับเวลาที่รับประกันลำดับข้อความทั่วโลกภายในช่องสัญญาณ ตาม เอกสาร PubNub (2025) timetoken มีความละเอียด 10 นาโนวินาที

โฟลว์ข้อความ

เมื่อไคลเอ็นต์เผยแพร่ข้อความ ข้อความจะผ่าน Stream Controller — โมดูลกำหนดเส้นทางของ PubNub Stream Controller ตรวจสอบสิทธิ์การเข้าถึง (PAM) ใช้กฎการแปลง (PubNub Functions) กำหนดภูมิภาคเป้าหมายและส่งข้อความไปยังผู้สมัครรับทั้งหมด หากผู้สมัครรับออฟไลน์ ข้อความจะถูกบัฟเฟอร์เป็นเวลา 30 วินาที (ค่าเริ่มต้น) ขณะรอการกู้คืนการเชื่อมต่อ

คีย์ PubNub: publish, subscribe, secret

ระบบคีย์ของ PubNub แยกสิทธิ์การเข้าถึงออกเป็นสามระดับ: คีย์ publish (เผยแพร่เท่านั้น), คีย์ subscribe (สมัครรับเท่านั้น) และคีย์ secret (การดูแลระบบ) แต่ละแอปพลิเคชันได้รับชุดคีย์สามคีย์เมื่อลงทะเบียน แต่คีย์ secret จะไม่ถูกส่งไปยังไคลเอ็นต์ — ใช้เฉพาะฝั่งเซิร์ฟเวอร์เท่านั้น

คีย์ publish ใช้สำหรับส่งข้อความไปยังช่องสัญญาณ คีย์ subscribe ใช้สำหรับสมัครรับช่องสัญญาณและรับข้อความ คีย์ secret ใช้สำหรับการจัดการการเข้าถึงผ่าน PubNub Access Manager (PAM) การสร้างโทเคนผู้ชมชั่วคราวและการจัดการคีย์ คีย์ secret จะถูกเก็บอย่างปลอดภัยบนเซิร์ฟเวอร์และไม่เปิดเผยต่อไคลเอ็นต์

PubNub รองรับ หลายโหมดการรับรองความถูกต้อง: โดยที่อยู่ IP (สำหรับเซิร์ฟเวอร์), โดยคีย์ secret (สำหรับการดำเนินการด้านการดูแลระบบ), โดยโทเคนชั่วคราว (สำหรับไคลเอ็นต์) โทเคนชั่วคราวจะออกผ่าน PAM โดยมีข้อจำกัดด้านเวลาหมดอายุ ช่องสัญญาณ และสิทธิ์ (read, write, manage)

ช่องสัญญาณ PubNub

ช่องสัญญาณ PubNub คือเส้นทางข้อความที่มีชื่อ ชื่อช่องสัญญาณเป็นสตริงยาวสูงสุด 92 อักขระ รองรับตัวอักษรละติน ตัวเลข ยัติภังค์ และขีดล่าง ช่องสัญญาณถูกสร้างขึ้นแบบไดนามิกเมื่อมีการเผยแพร่หรือสมัครรับครั้งแรก PubNub รองรับ รูปแบบช่องสัญญาณ ผ่านอักขระ * ในคำขอสมัครรับ — ซึ่งช่วยให้สมัครรับกลุ่มช่องสัญญาณ (เช่น user-*)

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

ตาม เอกสารทางเทคนิคของ PubNub (2025) จำนวนผู้สมัครรับสูงสุดต่อช่องสัญญาณคือ 50,000 สำหรับโหลดที่สูงขึ้น แนะนำให้ใช้ช่องสัญญาณที่มีคำนำหน้าและแบ่งกลุ่มผู้ชม (เช่น chat-room-001, chat-room-002) Channel Groups ยังสามารถจัดระเบียบตามหลักการทางภูมิศาสตร์หรือหัวข้อ

พารามิเตอร์สูงสุดหมายเหตุ
ความยาวชื่อช่องสัญญาณ92 อักขระตัวอักษรละติน ตัวเลข -, _
ผู้สมัครรับต่อช่องสัญญาณ50,000สูงกว่า — แบ่งกลุ่ม
Channel Groups2,000 กลุ่ม / คีย์สูงสุด 500 ช่องสัญญาณต่อกลุ่ม
ประวัติ (พื้นที่จัดเก็บ)ไม่จำกัดจ่ายตามปริมาณพื้นที่จัดเก็บ

วิธีใช้ PubNub ในโปรเจกต์

การรวม PubNub ต้องมีการลงทะเบียน การสร้างแอปพลิเคชันในแผงผู้ดูแลระบบ และรับชุดคีย์ ไลบรารี PubNub พร้อมใช้งานสำหรับ JavaScript, Swift, Kotlin, Java, Dart (Flutter), C#, Python, Ruby, Go และภาษาอื่น ๆ อีกมากมาย มาดูตัวอย่างใน JavaScript สำหรับเบราว์เซอร์และ Node.js

ตาม เอกสาร PubNub (2025) ไลบรารี pubnub-js รองรับทั้งการนำเข้า CommonJS และ ES Module สำหรับเบราว์เซอร์ แนะนำให้ใช้บิลด์ npm ตามด้วยการรวมผ่าน webpack หรือ Vite

การสมัครรับช่องสัญญาณ

js
import PubNub from 'pubnub';

const pubnub = new PubNub({
    publishKey: 'PUBLISH_KEY',
    subscribeKey: 'SUBSCRIBE_KEY',
    userId: 'user-100'
});

pubnub.subscribe({
    channels: ['chat-general']
});

pubnub.addListener({
    message: (event) => {
        console.log('ข้อความใหม่:', event.message);
    },
    presence: (event) => {
        console.log('สถานะ:', event.uuid, event.action);
    }
});

pubnub.publish({
    channel: 'chat-general',
    message: { text: 'Hello everyone!', sender: 'user-100' }
});

การรับประวัติข้อความ

js
pubnub.fetchMessages(
    { channels: ['chat-general'], count: 50 },
    (status, response) => {
        if (status.error) {
            console.error('ข้อผิดพลาดในการรับประวัติ', status);
            return;
        }
        const messages = response.channels['chat-general'];
        messages.forEach((msg) => {
            console.log(msg.message, msg.timetoken);
        });
    }
);

PubNub Functions และ Stream Controller

PubNub Functions คือแพลตฟอร์มไร้เซิร์ฟเวอร์สำหรับประมวลผลข้อความฝั่ง PubNub ฟังก์ชันเขียนด้วย JavaScript และทำงานในสภาพแวดล้อมแบบแยกส่วนที่ปลอดภัย (V8 isolate) สามารถแปลง กรอง บัฟเฟอร์ และเปลี่ยนเส้นทางข้อความก่อนที่จะส่งถึงผู้สมัครรับ

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

ตาม บล็อก PubNub (2024) PubNub Functions ลดต้นทุนโครงสร้างพื้นฐานเซิร์ฟเวอร์สำหรับการประมวลผลข้อความลง 40–60% โดยการย้ายตรรกะการกรองและการแปลงไปยังโหนดขอบของ PubNub แทนที่จะทำงานบนเซิร์ฟเวอร์ของคุณเอง ฟังก์ชันสามารถเข้าถึงคำขอ HTTP, พื้นที่จัดเก็บ Key-Value และฟังก์ชันอื่น ๆ ในพื้นที่เดียวกัน

PubNub ในแอปพลิเคชันมือถือ

PubNub SDK สำหรับแพลตฟอร์มมือถือ พร้อมใช้งานสำหรับ iOS (Swift), Android (Kotlin/Java), Flutter (Dart) และ React Native (JavaScript) SDK มือถือรองรับคุณสมบัติครบถ้วน: pub/sub, สถานะ, ประวัติ, PAM และ PubNub Functions สำหรับการแจ้งเตือนแบบพุช PubNub ผสานรวมกับ APNs และ FCM ผ่านกลไกเกตเวย์พุชมือถือพิเศษ

การเพิ่มประสิทธิภาพสำหรับอุปกรณ์มือถือ รวมถึง heartbeat แบบปรับได้ การประมวลผลข้อความแบบแบตช์ และการรองรับโหมดพื้นหลัง PubNub SDK สำหรับ iOS ใช้ Background Task API เพื่อรักษาการเชื่อมต่อเมื่อแอปถูกย่อเล็กสุด (สูงสุด 30 วินาทีของเวลาพื้นหลังมาตรฐาน) สำหรับการทำงานพื้นหลังที่ยาวนานขึ้น จำเป็นต้องใช้การแจ้งเตือนแบบพุช

Mobile Push Gateway คือกลไกการส่งการแจ้งเตือนแบบพุชผ่าน PubNub เมื่อมีการเผยแพร่ข้อความในช่องสัญญาณ PubNub จะกำหนดโดยอัตโนมัติว่าผู้สมัครรับคนใดออฟไลน์และส่งการแจ้งเตือนแบบพุชผ่าน APNs (iOS) หรือ FCM (Android) การกำหนดค่าทำเพียงครั้งเดียวในแผงผู้ดูแลระบบ — หลังจากนั้น ข้อความทั้งหมดจากช่องสัญญาณจะถูกทำซ้ำไปยังช่องสัญญาณพุชโดยอัตโนมัติ ตาม เอกสาร PubNub (2025) เกตเวย์ประมวลผลการแจ้งเตือนแบบพุชสูงสุด 10,000 รายการต่อวินาที

คำถามที่พบบ่อย

PubNub แตกต่างจาก Pusher อย่างไร?

PubNub มี SDK มากกว่า (มากกว่า 75 แพลตฟอร์ม), ฟังก์ชันไร้เซิร์ฟเวอร์ในตัว และ Stream Controller สำหรับการประมวลผลข้อความ Pusher ตั้งค่าง่ายกว่า แต่ PubNub ให้การควบคุมการกำหนดเส้นทางและการแปลงข้อมูลมากกว่า

PubNub รับประกันการส่งข้อความอย่างไร?

PubNub ใช้กลไก at-least-once พร้อมลองใหม่อัตโนมัติเมื่อเกิดข้อผิดพลาด แต่ละข้อความมี timetoken เฉพาะที่ไม่ซ้ำกันสำหรับการกำจัดรายการซ้ำ ข้อความถูกบัฟเฟอร์เป็นเวลา 30 วินาทีสำหรับผู้สมัครรับที่ออฟไลน์

PubNub มีค่าใช้จ่ายเท่าไร?

แผนฟรีรวม 100 การเชื่อมต่อพร้อมกัน และ 1 ล้านข้อความต่อเดือน แผนแบบชำระเงินเริ่มต้นที่ $49/เดือนสำหรับ 1,000 การเชื่อมต่อพร้อมกันพร้อมข้อความไม่จำกัด

PubNub รองรับการเข้ารหัสหรือไม่?

ใช่ PubNub รองรับ TLS 1.3 สำหรับการเชื่อมต่อทั้งหมดและการเข้ารหัสแบบ end-to-end ฝั่งไคลเอ็นต์แบบเลือกได้ (AES-256) พร้อมการจัดการคีย์ผ่าน PAM โหมด Cipher Key พร้อมใช้งานสำหรับลูกค้าองค์กร

PubNub SDK รองรับภาษาใดบ้าง?

PubNub ให้ SDK สำหรับ มากกว่า 75 แพลตฟอร์ม รวมถึง JavaScript, Swift, Kotlin, Java, Dart, C#, Python, Ruby, Go, C++, PHP, Rust และ Objective-C นี่คือระบบนิเวศที่ใหญ่ที่สุดในบริการแบบเรียลไทม์

สรุป

  • PubNub คือเครือข่ายการส่งข้อความแบบเรียลไทม์ระดับโลกที่มีศูนย์ข้อมูลมากกว่า 15 แห่งและรองรับมากกว่า 75 แพลตฟอร์ม
  • ระบบคีย์ publish/subscribe/secret + PAM ให้การจัดการสิทธิ์การเข้าถึงที่ยืดหยุ่น
  • PubNub Functions ช่วยให้ประมวลผลข้อความแบบไร้เซิร์ฟเวอร์โดยไม่ต้องมีโครงสร้างพื้นฐานเซิร์ฟเวอร์ของตนเอง
  • Stream Controller จัดการการกำหนดเส้นทาง การกรอง และการแปลงข้อความที่โหนดขอบของเครือข่าย
  • Mobile Push Gateway ส่งการแจ้งเตือนแบบพุชผ่าน APNs และ FCM โดยอัตโนมัติสำหรับผู้สมัครรับที่ออฟไลน์
  • ช่องสัญญาณรองรับ ผู้สมัครรับสูงสุด 50,000 คน และ Channel Groups ช่วยลดความซับซ้อนในการจัดการหลายช่องสัญญาณ
  • สำหรับโปรเจกต์ ที่ต้องการการรองรับแพลตฟอร์มที่กว้างขวางและการประมวลผลข้อความในตัว ให้เลือก PubNub สำหรับสถานการณ์ที่ง่ายกว่า Pusher เหมาะสม

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม