پرش به محتوا

چیزی که عوض می‌شود، همه در همان لحظه می‌بینند.

PushCaster زیرساخت مدیریت‌شدهٔ پیام‌رسانی بی‌درنگ برای اپلیکیشن‌هاست. یک بار منتشر کنید تا هر مرورگر، موبایل و داشبوردِ متصل، در همان لحظه آن را داشته باشد — بدون پولینگ، بدون دکمهٔ رفرش، و بدون اینکه سرور اتصالی برای نگه‌داشتن داشته باشید.

راه‌اندازی به سادگیِ دو خط

یک خط در مرورگر برای شنیدن، یک خط روی سرور برای فرستادن. SDK تازه‌ای برای یادگرفتن نیست — همان کتابخانه‌هایی که الان استفاده می‌کنید، فقط به PushCaster اشاره می‌کنند.

در مرورگر — منتظر رویداد بمانید

client.js
js
import Pusher from 'pusher-js'// The same library you already use. One host override points it at PushCaster.const pusher = new Pusher('APP_KEY', {  wsHost: 'ws-eu1.pushcaster.io',  wsPort: 443,  forceTLS: true,})const channel = pusher.subscribe('presence-room')channel.bind('message', (data) => {  render(data.body)})

روی سرور شما — بفرستیدش

server.js
js
import Pusher from 'pusher'const pusher = new Pusher({  appId: 'APP_ID',  key: 'APP_KEY',  secret: 'APP_SECRET',  host: 'api-eu1.pushcaster.io',  useTLS: true,})await pusher.trigger('presence-room', 'message', {  body: 'Deployed to production',})

app id، key و سکرت را از داشبورد می‌گیرید؛ کلاستری که انتخاب می‌کنید بخشی از آدرس هاست است.

پوش‌کستر چه کار می‌کند؟

هر قابلیت بی‌درنگ کمی کد محصول است روی انبوهی از سازوکار تحویل: چه کسی مشترک است، چه کسی اجازه دارد، چه کسی هنوز آنجاست. این همان بخش دوم است، از قبل در حال اجرا.

01

چهار نوع کانال

public، private، presence، و private-encrypted برای وقتی که محتوا باید حتی از دید ما هم پوشیده بماند.

02

یک بار منتشر کنید، به همه می‌رسد

یک فراخوانی از سرور شما به همهٔ مشترک‌ها می‌رسد، بدون اینکه کدتان حساب کند چه کسی گوش می‌دهد.

03

presence به‌عنوان یک کانال

«چه کسی در اتاق است» را خود کانال جواب می‌دهد، نه جدولی که شما هم‌گام نگه می‌دارید.

04

رویدادهای سمت کلاینت

نشانگر تایپ و مکان‌نما مستقیم بین مشترک‌ها رد و بدل می‌شود، با محدودیت نرخ، بدون رفت‌وبرگشت از سرور شما.

05

وب‌هوک روی چرخهٔ حیات

پر و خالی شدن کانال و عضویت‌ها با هدرهای امضاشده به شما برمی‌گردد، تا بک‌اندتان به چیزی که اتصال می‌بیند واکنش نشان دهد.

06

محل اجرا را شما انتخاب می‌کنید

هر اپلیکیشن در یک کلاستر ساخته می‌شود و اتصال‌هایش همان‌جا پایان می‌گیرند. فهرست فعلی در صفحهٔ وضعیت است.

پیام‌های شما واقعاً از کجا می‌روند

تحویل پیام و صورت‌حساب روی دو لایهٔ جدا اجرا می‌شوند. قطعی control plane داشبورد را دچار اختلال می‌کند؛ تحویل پیام را قطع نمی‌کند.

کلاسترها برای پیام‌رسانی دسترس‌پذیری بالا دارند، اما برای presence نه. اگر حافظهٔ presence از دست برود، presence و شمارش حاضران افت می‌کند در حالی که کانال‌های public و private همچنان تحویل می‌دهند — بهتر است اینجا بخوانیدش تا بعداً کشفش کنید.

لایهٔ بی‌درنگ — هر بسته از اینجا می‌گذردسرور شماtrigger()api-eu1انتشارws-eu1تحویلوب‌اپموبایلدستگاهفقط پیکربندیcontrol planeهویت · صورت‌حساب · پیکربندی

یک ایده، با لباس‌های مختلف

گفت‌وگو، داشبورد، اعلان، سند مشترک. زیر همهٔ این‌ها یک ایده است: چیزی عوض شد و هرکسی که نگاه می‌کند باید بداند.

presence-room-42
presence

گفت‌وگو و کار گروهی

presence نشان می‌دهد چه کسی در اتاق است؛ رویدادهای کلاینت «در حال نوشتن» و مکان‌نما را می‌برند. پیام‌ها همان لحظه‌ای که منتشر می‌شوند می‌رسند.

private-metrics
private

داشبوردهای زنده

معیارها و جریان سفارش‌ها را همان‌طور که تغییر می‌کنند به هر داشبورد باز بفرستید — نه فاصلهٔ پولینگ برای تنظیم‌کردن، نه بازه‌ای که در آن عدد از قبل غلط شده است.

private-user-1e9
private

اعلان‌ها

یک رویداد سمت سرور به هر دستگاهی که کاربر باز گذاشته می‌رسد، در همان رفت‌وبرگشتی که آن را راه انداخته است.

presence-game
presence

چندنفره و وضعیت زنده

وضعیت مشترک با عضویتی که presence دنبالش می‌کند — بوم نقاشی، نتیجهٔ زندهٔ بازی، هر چیزی که دو نفر باید یکسان ببینندش.

از کتابخانه‌های Pusher Channels استفاده می‌کنید؟

سه تا شش خط برای هر اپلیکیشن — بدون بازنویسی اپلیکیشن، فقط تغییر پیکربندی اتصال.

اعتبارنامه‌ها منتقل نمی‌شوند و چند تفاوت واقعی هست که بهتر است اول بخوانید. هر دو به‌طور کامل در صفحهٔ مقایسه آمده‌اند.

جزئیات سازگاری و مهاجرت
src/realtime.tsunified diff
const pusher = new Pusher(APP_KEY, {
- cluster: 'eu',
+ wsHost: 'ws-eu1.pushcaster.io',
+ wsPort: 443,
+ forceTLS: true,
})

به اندازهٔ مصرف پرداخت می‌کنید، از کیف پول پیش‌پرداخت

یک نرخ‌نامه. بدون پلن، بدون رده، بدون صندلی، بدون تعهد ماهانه — بابت چیزی می‌پردازید که می‌فرستید، باز نگه می‌دارید و جابه‌جا می‌کنید.

نرخ‌نامه

USD · از تاریخ ۱۰ شهریور ۱۴۰۵

  • پیام‌های ارسال‌شده

    $0.1به ازای هر میلیون پیام
  • پیام‌های تحویل‌شده

    $0.1به ازای هر میلیون پیام
  • مدت اتصال

    $0.2به ازای هر میلیون دقیقهٔ اتصال
  • Connection milliseconds

    $0.2به ازای هر میلیون دقیقهٔ اتصال

زنده از pricing API منتشر می‌شود. سهمیه‌ها بخشی از همان یک نرخ‌نامه‌اند، نه یک پلن رایگان.

صورت‌حساب چطور کار می‌کند

وضعیت را منتشر می‌کنیم، قول نمی‌دهیم

زنده از خود پلتفرم خوانده می‌شود. وضعیت هر مؤلفه و هر ناحیه و تاریخچهٔ کامل رخدادها را منتشر می‌کنیم — و هیچ عدد دسترس‌پذیری‌ای که نتوانیم پشتش بایستیم.

  • مستندات

    انواع کانال، احراز هویت، وب‌هوک‌ها و مرجع کامل کدهای خطا.

  • صفحهٔ وضعیت

    وضعیت مؤلفه‌ها و نواحی، تأخیر، و تاریخچهٔ رخدادها.

  • پشتیبانی

    از حسابتان تیکت باز کنید. سؤال فنی به کسانی می‌رسد که روی همین سیستم کار می‌کنند.

وضعیت پلتفرم

همه‌چیز سالم است
  • سرویس وب‌سوکت

    اتصال کلاینت‌ها، اشتراک در کانال‌ها و تحویل رویداد.

    همه‌چیز سالم است
  • Publish API

    انتشار رویداد از سرورهای شما به PushCaster.

    همه‌چیز سالم است
  • داشبورد

    ورود به حساب و مدیریت اپلیکیشن‌ها.

    همه‌چیز سالم است
  • control plane

    پیکربندی اپلیکیشن، صورت‌حساب و مدیریت حساب.

    همه‌چیز سالم است
  • eu1 · غرب اروپا
  • eu2 · مرکز اروپا

$ export PUSHER_HOST=ws-eu1.pushcaster.io

هاست را عوض کنید.
کدتان سر جایش بماند.

همان پروتکل، همان SDKها، همان دست‌دادن احراز هویت. یک اپلیکیشن بسازید، کتابخانه‌هایی را که همین حالا استفاده می‌کنید به PushCaster نشانه بگیرید، و قابلیت‌های بی‌درنگتان ظرف چند دقیقه بالا می‌آید.

Support