منتشر‌شده آوریل ۲۰۲۶

چت تصویری تصادفی واقعاً چطور کار می‌کند

مهندسی پشت همتایابی غریبه‌ها و جریان ویدیویی HD بدون سرور رسانه

وقتی روی «شروع» کلیک می‌کنید چه اتفاقی می‌افتد؟

چت تصویری تصادفی دو غریبه را در ثانیه با استفاده از پنج مرحله‌ای که تقریباً به‌طور همزمان اتفاق می‌افتند متصل می‌کند. مرورگر شما دسترسی دوربین را کسب می‌کند، صفحه‌ی همتایابی شما را با کاربر دیگری جفت می‌کند، سرور سیگنالینگ فراداده اتصال را تبادل می‌کند و WebRTC اتصال P2P مستقیمِ ویدیویی را برقرار می‌کند — سرور رسانه مورد نیاز نیست.

01

مرورگر دوربین و میکروفن درخواست می‌کند

getUserMedia API
02

شما به صفحه‌ی همتایابی وارد می‌شوید

Cloudflare Durable Objects
03

تطابق یافت — سیگنالینگ شما را متصل می‌کند

WebSocket
04

اتصال همتا WebRTC برقرار می‌شود

تبادل SDP + نامزدهای ICE
05

جریان‌های ویدیویی مرورگر به مرورگر

همتا به همتا، بدون سرور

WebRTC چیست؟

WebRTC (ارتباط بلادرنگ وب) یک پروتکل منبع باز است که در هر مرورگر مدرن تعبیه‌شده است و بدون افزونه‌ها، انتقال صوت، ویدیو و داده‌های P2P را فعال می‌کند. نگهداری‌شده توسط W3C و IETF، بر Chrome، Safari، Firefox و Edge بدون دانلود، Flash و بدون applet Java چت تصویری را قدرت می‌دهد.

getUserMedia

دسترسی به دوربین و میکروفن درخواست می‌کند. یک شی MediaStream برمی‌گرداند که برنامه شما می‌تواند نمایش دهد یا ارسال کند.

RTCPeerConnection

چرخه‌ی زندگی اتصال P2P کامل را مدیریت می‌کند — مذاکره SDP، تبادل نامزد ICE و حمل‌ونقل رسانه.

RTCDataChannel

داده‌های دلخواه (چت متنی، انتقال فایل، وضعیت بازی) را مستقیماً بین مرورگرها بر همان لینک P2P ارسال می‌کند.

نکته‌ی کلیدی: WebRTC یک استاندارد W3C/IETF باز است — نه API اختصاصی. هر مرورگری که مشخصات را اجرا کند می‌تواند شرکت کند، که همین دلیل است که چت تصویری تصادفی بدون نصب بر سه مرورگر کار می‌کند.

ویدیوی P2P چطور کار می‌کند (و چرا خصوصی‌تر است)

ویدیوی P2P به معنی فید دوربین شما مستقیماً از مرورگر شما به مرورگر فرد دیگر می‌رود. هیچ سرور مرکزی جریان را رمزگشایی، بازرسی یا ذخیره نمی‌کند. این معماری توسط سیگنالینگ SDP، جمع‌آوری کاندید ICE و سرور STUN/TURN برای حل‌نفوذ NAT فعال می‌شود — و این را از لحاظ بنیادی خصوصی‌تر از جایگزین‌های مبتنی بر سرور رسانه می‌کند.

SDP (Session Description Protocol)

هر همتا یک «پیشنهاد» یا «پاسخ» SDP تولید می‌کند که کدک‌های پشتیبانی‌شده، رزولوشن و کلید رمزگذاری خود را توصیف می‌کند. این‌ها از طریق سرور سیگنالینگ (رله WebSocket) تبادل می‌شوند اما هیچ داده رسانه واقعی را نشامل نمی‌کند.

ICE (Interactive Connectivity Establishment)

ICE نامزدهای مسیر شبکه را جمع‌آوری می‌کند — کاندید میزبان (IP محلی)، کاندید انعکاس‌یافته سرور (IP عمومی از STUN) و کاندید رله (بازگشت TURN). عامل ICE هر مسیر را آزمایش می‌کند و بهترین مسیر مستقیم را انتخاب می‌کند.

سرور STUN (NAT Traversal)

STUN (Session Traversal Utilities for NAT) به مرورگر کمک می‌کند تا IP عمومی و نقشه‌برداری درگاه خود را کشف کند. این اجازه می‌دهد همتایان پشت مسیریاب خانگی بدون هیچ رله‌ای مستقیم ارتباط برقرار کنند.

سرور TURN (Fallback Relay)

هنگامی که اتصال مستقیم ناموفق شود (NAT متقارن، دیوار آتش محدود شرکتی)، TURN بسته‌های رسانه رمزگذاری‌شده را میان همتایان رله می‌کند. تقریباً ۱۵% از نشست‌های دنیای واقعی به TURN نیاز دارند — رسانه هنوز رمزگذاری سرتاسری است.

بینش حریم خصوصی: زیرا داده‌های ویدیو مستقیماً بین مرورگرها جریان می‌یابند، عامل پلتفرم هرگز جریان ویدیویی شما را نمی‌بیند، پردازش نمی‌کند یا ذخیره نمی‌کند. حتی سرور سیگنالینگ فقط فراداده JSON سبک را مدیریت می‌کند — نه پیکسل.

سیستم همتایابی چطور کار می‌کند؟

همتایابی دو غریبه را از صفحه‌ی جهانی در کمتر از ۵۰ میلی‌ثانیه جفت می‌کند. Nightcap از Durable Objects Cloudflare — یک اولویت حالت‌دار توزیع‌شده جهانی — برای نگهداری صفحه‌ی جهانی منحصر با نمره‌گذاری کاربران بر اساس علاقه‌های مشترک، ترجیح جغرافیایی و فیلترهای جنسیتی استفاده می‌کند، سپس جفت بالاترین امتیاز را انتخاب می‌کند.

نمره‌گذاری مبتنی بر علاقه

علاقه‌مندی‌ها مانند «موسیقی، برنامه‌نویسی، انیمه» را وارد کنید — سیستم همتایابی امتیاز شباهت Jaccard علیه کاربران دیگر در صفحه را محاسبه می‌کند و بهترین همپوشانی را اولویت می‌دهد.

فیلترهای کشور و جنسیت

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

معماری Durable Object

یک Durable Object Cloudflare منفرد صفحه‌ی همتایابی جهانی را در حافظه نگاه می‌دارد و برای سازگاری قوی. هر محل لبه در سراسر جهان با همان حالت متصل می‌شود، شرایط مسابقه را حذف می‌کند.

Boost: جایگاه صفحه‌ی اولویت

کاربران Boost پرداختی در جلوی صفحه قرار می‌گیرند. این به معنی تطابق سریع‌تر و جفت‌کردن بالاتر بدون تغییر الگوریتم همتایابی خود است.

افکت‌های ویدیویی بلادرنگ در مرورگر چطور کار می‌کند؟

Nightcap افکت‌های ویدیویی بلادرنگِ مبتنی بر هوش مصنوعی کاملاً در مرورگر با استفاده از مدل‌های MediaPipe شتاب‌یافته GPU اجرا می‌کند. محو پس‌زمینه، فیلترهای رنگی و حالت زیبایی همگی به‌صورت محلی بر روی MediaStream شما قبل از ارسال به همتای شما — پلتفرم هرگز ویدیوی خام یا پردازش‌شده را بر روی هیچ سروری دریافت نمی‌کند.

محو پس‌زمینه (تقسیم‌بندی هوش مصنوعی)

مدل تقسیم‌بندی selfie MediaPipe بر روی GPU شما اجرا می‌شود و شخص در برابر پس‌زمینه را در ۳۰fps شناخت می‌کند. همه چیز خارج از ماسک شخصی با شدت قابل تنظیم (۱–۲۰) تار می‌شود. خروجی تقسیم‌بندی‌شده جریان اصلی را جایگزین می‌کند.

۶ فیلتر رنگی

فیلترهای گرم، سرد، قدیمی، سیاه‌وسفید، پرشور و نرم به‌عنوان تبدیل‌های فیلتر CSS بر روی عنصر کنوا پنهان اعمال می‌شوند. فریم‌های فیلتر‌شده به‌عنوان MediaStream جدید اخت و به RTCPeerConnection تغذیه می‌شوند.

حالت زیبایی

overlay blur گاوسی محدود روی فریم ویدیو ترکیب می‌شود و صاف‌کردن پوست ظریفی تولید می‌کند. این اثر از۳px blur ترکیب‌شده در نمی‌پذیرفت ۱۵% برای اجتناب از نگاه عجیب‌وغریب در حالی که هنوز بافت پوست را نرم می‌کند استفاده می‌کند.

نظارت بدون تماشای هر چت چطور کار می‌کند؟

سیستم‌های نظارت هوش مصنوعی متن‌ها و فریم‌های ویدیویی دوره‌ای را بدون انسانی که گفتگوی شما را تماشا می‌کند بلادرنگ تجزیه می‌کند. Nightcap هر پیام چت را از طریق API نظارتی رایگان OpenAI ارسال می‌کند و بر اساس دوره‌ای نمونه‌های ویدیویی را برای تجزیه محتوای AWS Rekognition ارسال می‌کند — اجرای خودکار فعال کردن بدون نظارت دستی جمعی.

نظارت متن

هر پیام قبل از تحویل با API نظارتی OpenAI بررسی می‌شود. API نفرت‌پراکنی، آزار و اذیت، خودآسیب، محتوای جنسی و خشونت را در میلی‌ثانیه‌ها نشانه‌گذاری می‌کند — و استفاده از آن رایگان است.

نمونه‌برداری فریم ویدیویی

ضبط فریم دوره‌ای برای تجزیه محتوای AWS Rekognition ارسال می‌شود. سیستم محتوای صریح یا نامناسب را نشانه‌گذاری می‌کند و بدون ضبط یا ذخیره‌ی جریان ویدیویی اجرای خودکار را فعال می‌کند.

گزارش‌دهی یک‌کلیک

کاربران می‌توانند فوری‌اً یک تطابق را گزارش دهند. گزارش‌ها بررسی فوری را فعال می‌کند و تخلفات تأیید‌شده منجر به مسدودسازی موقت یا دائمی بر اساس شدت و سابقه مکرر می‌شود.

حالت خصوصی

هنگامی که هر دو کاربر به‌طور مستقل موافقت می‌کنند، فیلتر NSFW غیرفعال می‌شود. با این حال، شناسایی CSAM و نظارت تهدید همیشه فعال می‌ماند — این‌ها هرگز صرف‌نظر از حالت غیرفعال نمی‌شوند.

چرا P2P سرور رسانه برای ویدیوی یک‌به‌یک شکست می‌خورد؟

برای چت تصویری یک‌به‌یک، WebRTC همتا به همتا هیچ هزینه‌ای در پهنای باند سرور ندارد، کم‌ترین تاخیر ممکن را فراهم می‌کند (مسیر شبکه مستقیم) و اطمینان می‌دهد که پلتفرم هرگز ویدیوی شما را مدیریت نمی‌کند. معماری‌های مبتنی بر سرور مانند SFU و MCU هزینه، تاخیر و معامله حریم خصوصی را اضافه می‌کند که فقط برای تماس‌های گروهی منطقی است.

معماریهزینه پهنای باندحریم خصوصی
P2P (Nightcap)۰ دلار پهنای باند ویدیوویدیو هرگز بر روی سرور نیست
SFUبالا — سرور تمام جریان‌ها را رله می‌کندسرور تمام ویدیو را می‌بیند
MCUبالاترین — سرور رمزگشایی و دوباره‌رمزگذاری می‌کندسرور کاملاً ویدیو را پردازش می‌کند

معماری در یک نگاه

معماری Nightcap را به چهار صفحه تقسیم می‌کند: سیگنالینگ (Cloudflare Workers بر WebSocket)، همتایابی (Durable Objects)، رسانه (WebRTC خالص P2P) و منطق برنامه (Next.js API routes برای پرداخت، نظارت و گزارش). صفحه‌ی رسانه بدون هزینه پهنای باند سرور ندارد زیرا ویدیو هرگز سرور را لمس نمی‌کند.

مرورگر←→Cloudflare Worker(سیگنالینگ WebSocket — رله SDP + ICE)
مرورگر←→Durable Object(صفحه‌ی همتایابی — نمره‌گذاری علاقه)
مرورگر←→مرورگر(WebRTC P2P — صفر هزینه سرور رسانه)
مرورگرNext.js API(Stripe boosts، نظارت، گزارش)

پرسش‌های پرتکرار

آیا چت تصویری WebRTC واقعاً همتا به همتا است؟

بله. پس از برقراری اتصال WebRTC، داده‌های ویدیو و صدا مستقیماً بین دو مرورگر جریان می‌یابند. سرور سیگنالینگ فقط برای تبادل فراداده اتصال (پیشنهادهای SDP و نامزدهای ICE) استفاده می‌شود — هرگز جریان رسانه واقعی را لمس نمی‌کند.

آیا پلتفرم‌های چت تصویری می‌تواند ویدیو یا ضبط کند؟

بر روی پلتفرم‌های P2P مانند Nightcap، جریان‌های ویدیویی مستقیماً بین مرورگرها جریان می‌یابند و هرگز از سرور مرکزی نمی‌گذرند. پلتفرم نمی‌تواند ببیند، رهگیری یا ضبط ویدیو کند. این یک مزیت معماری اساسی از WebRTC همتا به همتا بر سایر معماری‌های رسانه سرور است.

اگر اتصال مستقیم P2P ناموفق شود چه اتفاقی می‌افتد؟

اگر هر دو اتصال مستقیم کمک‌شده‌ی STUN و کاندید میزبان ناموفق شوند (معمولاً به دلیل NAT تحدیدکننده‌ی انجمن یا دیوار آتش متقارن)، WebRTC به‌طور خودکار به سرور رله TURN بازگشت می‌کند. سرور TURN بسته‌های رسانه رمزگذاری‌شده را میان همتایان منتقل می‌کند. تقریباً ۱۵% از نشست‌ها رله TURN نیاز دارند.

آیا Nightcap از هیچ افزونه یا دانلود استفاده می‌کند؟

خیر. Nightcap از WebRTC استفاده می‌کند که نسخه‌ای بومی در Chrome، Safari، Firefox و Edge است. هیچ افزونه‌ای، Flash نیست، بدون applet Java و بدون نیاز به دانلود برنامه. صفحه را باز می‌کنید و مرورگر شما همه چیز را مدیریت می‌کند.

همتایابی بر روی چت تصویری تصادفی چطور کار می‌کند؟

وقتی روی شروع می‌کلیکید، صفحه‌ی همتایابی را وارد می‌شوید. Nightcap از Durable Objects Cloudflare استفاده می‌کند تا صفحه‌ای جهانی با سرعت کمتر از ۵۰ms را نگه دارد. سیستم علاقه‌مندی‌های شما، ترجیح کشور و فیلتر جنسیت را برای پیدا کردن بهترین تطابق در نظر می‌گیرد. کاربران Boost پرداختی جایگاه اولویت‌دار در صفحه را دریافت می‌کنند.

بیشتر از Nightcap

فناوری را تجربه کنید — Nightcap را رایگان امتحان کنید

بدون حساب کاربری. بدون دانلود. بدون سرور رسانه. فقط سایت را باز کنید و یک گفتگوی واقعی را در ثانیه‌ها شروع کنید.

شروع گفتگو رایگان →