Beacon Chat
چت ریلتایم کاملاً آفلاین برای شبکه محلی — فرانت نئون مدرن، ترابری WebSocket، پایداری با SQLite
گالری
3 تصویر — کلیک برای بزرگنماییچیست
Beacon Chat یک سیستم چت ریلتایم است که کاملاً آفلاین روی شبکه محلیتان اجرا میشود. بدون اینترنت، بدون سرور ابری، بدون ثبتنام — سرور را روی یک دستگاه اجرا میکنید و بقیه در همان LAN از مرورگر وصل میشوند. نامش همهچیز را میگوید: سرور «بیکن» (فانوس) است و کلاینتها به سمتش میآیند.
همه پیامها و پروفایلها در SQLite ذخیره میشوند، پس بعد از ریاستارت سرور، چتها دقیقاً همانطور که بودند برمیگردند.
ویژگیهای کلیدی
- فرانت وب — تم نئون/گلسمورفیسم، کاملاً ریسپانسیو (موبایل + دسکتاپ)
- ریلتایم واقعی — پیامها آنی میرسند (WebSocket)
- چت خصوصی (DM) بین هر دو نفر — کاملاً خصوصی
- اتاق گروه — ساخت، افزودن/حذف عضو، خروج
- رسانه و فایل — عکس، ویدیو، صدا و فایل تا ۶۰ مگابایت
- پروفایل — آواتار ایموجی، رنگ دلخواه، بیوگرافی
- ویرایش و حذف پیام — فقط مال خودت؛ در گروه ادمین هم میتواند حذف کند
- لیست آنلاین با تعداد زنده؛ نشانگر تایپ («X در حال تایپ است…»)
- اعلان مرورگر + صدا با دکمه خاموش/روشن
- ریکانکت خودکار هنگام قطع اتصال
- ۱۰۰٪ لوکال — هیچ دادهای از شبکه خارج نمیشود
معماری و پروتکل
┌──────────────────────────────────────────────┐
│ LAN / WiFi │
│ 💻 سرور (web/server_ws.py) │
│ ├─ Flask :8080 (صفحه + آپلود) │
│ └─ WebSocket :8765 (ریلتایم) │
│ 📱 💻 📱 کلاینتها (مرورگر) ── WebSocket ──┘
└──────────────────────────────────────────────┘
پروتکل WebSocket مبتنی بر JSON است:
- کلاینت → سرور:
join,message,edit,delete,typing,dm-open,group-create,group-add,group-leave,profile-update - سرور → کلاینت:
welcome,rooms,message,edited,deleted,typing,users,user_joined,user_left,profile,system
اسکیمای SQLite (chat.db) — سه جدول:
| جدول | کاربرد |
|---|---|
profiles |
نام ← آواتار، رنگ، بیوگرافی (پایدار) |
rooms |
اتاقها (DM/گروه) + لیست اعضا |
messages |
همه پیامها با شناسه، اتاق، فرستنده، رسانه، وضعیت ویرایش/حذف |
ساختار پروژه
BeaconChat/
└── web/
├── server_ws.py # سرور یکپارچه: Flask (HTTP+آپلود) + WebSocket
├── requirements.txt # flask + websockets
├── install.sh # اینستالر یکفرمانی
├── static/ # app.js, index.html, styles.css
├── uploads/ # فایلهای آپلودشده (خودکار ساخته میشود)
└── chat.db # دیتابیس SQLite (خودکار ساخته میشود)
شروع کار
cd web
./install.sh
# باز کردن در مرورگر:
# http://127.0.0.1:8080 (روی همین دستگاه)
# http://IP-LAN:8080 (بقیه — IP را سرور چاپ میکند)
اجرای دستی: pip install -r requirements.txt && python3 server_ws.py
چرا برجسته است
Beacon Chat درک محصولمحور از سیستمهای بلادرنگ را بدون اتکا به زیرساخت ابری نشان میدهد: دو ترابری هماهنگ در یک سرور ۵۶۲ خطی، پروتکل JSON پایدار، پایداری کامل و فرانتاند صیقلی — همه روی شبکهای بدون اینترنت. ابزاری که سر یک دورهمی خانوادگی یا در ادارهای با اینترنت محدود، بیدردسر کار میکند.