Hocuspocus: بکاند آمادهی همکاری بلادرنگ
خلاصهٔ کاملتر
Hocuspocus یه بکاند به اصطلاح plug & play برای اضافه کردن قابلیت همکاری بلادرنگ به اپلیکیشنهاست که روی Y.js بنا شده. به زبون ساده، اون چیزیه که Y.js (که فقط منطق سینک رو داره) برای کار کردن توی دنیای واقعی بهش نیاز داره: یه سرور وبسوکت آماده که میتونی سریع راهش بندازی.
نقطهقوتش سادگی راهاندازیه. با چند خط کد یه Server میسازی، یه پورت بهش میدی، و یه سرور وبسوکت بالا میاد که بهصورت پیشفرض روی 127.0.0.1 گوش میده. این مثال کوچیک کل چیزیه که برای شروع لازم داری:
import { Server } from '@hocuspocus/server'
import { SQLite } from '@hocuspocus/extension-sqlite'
const server = new Server({
port: 1234,
extensions: [
new SQLite({ database: 'db.sqlite' }),
],
})
server.listen();همونطور که توی کد میبینی، معماری Hocuspocus حول افزونهها (extensions) میچرخه. اینجا افزونهی SQLite اضافه شده که state مشترک رو خودکار توی یه فایل دیتابیس ذخیره میکنه. هوکهایی هم مثل onConnect داره که موقع وصل شدن هر کلاینت اجرا میشن و جای مناسبی برای کنترل دسترسی یا لاگ هستن.
از نظر مجوز و نگهداری، Hocuspocus متنباز و تحت لایسنس MITـه و توسط تیم Tiptap توسعه داده میشه. اگه نخوای خودت درگیر میزبانی بشی، یه نسخهی ابری به اسم Tiptap Collab هم براش ارائه شده.
این پروژه از همون اول توسط جامعهی توسعهدهندهها و اسپانسرها حمایت شده و توی محصولات واقعی استفاده میشه، که نشون میده برای محیط production هم به اندازهی کافی پختهست.
نکات کلیدی:
- Hocuspocus یه بکاند آمادهی همکاری بلادرنگ روی Y.jsـه
- با چند خط کد یه سرور وبسوکت بالا میاد
- معماریش بر پایهی افزونههاست؛ مثل افزونهی SQLite برای ذخیرهی state
- متنباز و تحت لایسنس MITـه و توسط تیم Tiptap نگهداری میشه
- نسخهی ابری Tiptap Collab برای کسایی که نخوان خودشون میزبانی کنن وجود داره




