🌐وب‌اپسال: ۱۴۰۴تکمیل‌شده

Beacon Chat

چت ریل‌تایم کاملاً آفلاین برای شبکه محلی — فرانت نئون مدرن، ترابری WebSocket، پایداری با SQLite

Beacon Chat cover
پایتونFlaskWebSocketSQLiteHTML/CSS/JSشبکه محلی

چیست

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 پایدار، پایداری کامل و فرانت‌اند صیقلی — همه روی شبکه‌ای بدون اینترنت. ابزاری که سر یک دورهمی خانوادگی یا در اداره‌ای با اینترنت محدود، بی‌دردسر کار می‌کند.

پروژه‌های بیشتر