پیام متنی
تا ۲۰۰۰ کاراکتر متن بفرست. از فارسی و ایموجی پشتیبانی میکنه و با Enter ارسال میشه.
اگه توی یه شرکت یا سازمان کار میکنی و به یه چت ساده برای دو نفر نیاز داری، Two Chat دقیقاً همینه. بدون سرور خارجی، بدون پیچیدگی — فقط نصب کن و چت کن.
از چت ساده متنی تا ضبط ویس و ارسال عکس — همه چیز توی یه پروژه سبک Node.js
تا ۲۰۰۰ کاراکتر متن بفرست. از فارسی و ایموجی پشتیبانی میکنه و با Enter ارسال میشه.
JPEG، PNG، WebP، GIF — تا ۱۲ مگابایت. عکسها خودکار با Sharp فشرده میشن تا حجم کم بشه.
دکمه میکروفون رو بزن و حرف بزن. ویس با WebM ذخیره میشه و با موج صوتی پخش میشه.
روی هر پیامی میتونی ریپلای کنی. پیشنمایش پیام اصلی بالای composer نمایش داده میشه.
اگه اشتباه تایپ کردی، پیام رو ویرایش کن. یه برچسب «ویرایششده» اضافه میشه تا طرف مقابل بفهمه.
چهار تا ایموجی برای ریاکشن. روشون بزن و حذفشون کن — همه چیز لحظهای آپدیت میشه.
وقتی طرف مقابل پیامت رو بخونه، تیکها سبز میشن. از IntersectionObserver استفاده میشه.
وقتی طرف مقابل در حال تایپ باشه، زیر اسمش «در حال تایپ...» نمایش داده میشه.
وضعیت آنلاین بودن با TTL کار میکنه. وقتی تب مرورگر فعال باشه، presence آپدیت میشه.
بین پیامهای روزهای مختلف، جداکننده تاریخ شمسی نمایش داده میشه با locale فارسی.
یه پنل جداگانه همه عکسها و ویسها رو نشون میده. روش بزنی مستقیم میری پیام مربوطه.
استیکرها از فایل manifest محلی لود میشن. نیازی به CDN خارجی نیست.
با PWA میتونی Two Chat رو مثل یه اپ روی گوشیت نصب کنی. نوتیفیکیشن هم میده.
فقط دو تا کاربر مجاز از قبل تعیین شدن. هر کسی با اسم کاربری خودش وارد میشه.
پیامها توی یه فایل JSON ذخیره میشن. فایلها هم توی پوشه uploads. خودش manage میکنه.
بدون WebSocket، سبک و ساده — Server-Sent Events کافیه
سرور به همه کلاینتها خبر میده وقتی اتفاقی بیفته:
message:new — یه پیام جدید اومدهmessage:update — کسی پیامش رو ویرایش کرد یا ریاکشن گذاشتmessage:read — پیامت خوانده شدpresence:update — کسی آنلاین یا آفلاین شدtyping:update — کسی داره تایپ میکنهping — سیگنال زنده بودن هر ۳۰ ثانیهروی ایموجیها بزن — مثل هر اپ چتی، ریاکشن روی پیام ظاهر میشه:
دکمه گالری توی هدر — همه عکسها و ویسها رو یه جا ببین:
Backend سبک Node.js و Frontend بدون فریمورک — همه چیز دستساز
امنیت پایه برای استقرار LAN — با توصیه HTTPS و فایروال
Content Security Policy و هدرهای امنیتی استاندارد. x-powered-by غیرفعال شده.
۱۶۰ درخواست در دقیقه — جلوی اسپم و درخواستهای مشکوک رو میگیره.
فقط فایلهای مجاز آپلود میشن. حداکثر ۱۲MB و نام فایل sanitize میشه.
HttpOnly cookie با SameSite. توی production حتماً از HTTPS استفاده کن.