رویدادهای ارسال شده توسط سرور 101: یک راهنما

رویدادهای ارسال شده توسط سرور (SSE)، همانطور که از نام آن پیداست، راهی برای برقراری ارتباط با مشتری با حفظ یک اتصال دائمی است که در آن سرور هر زمان که در دسترس باشد، پیام‌های متنی را برای مشتری ارسال می‌کند. آنها شبیه به سوکت های وب هستند، اما برخلاف سوکت های وب، اتصال یک طرفه است، یعنی فقط سرور توانایی ارسال پیام را دارد و مشتری فقط گوش می دهد.

یکی دیگر از تفاوت های کلیدی بین SSE و وب سوکت ها این است که وب سوکت ها از خود استفاده می کنند ws:// پروتکل websocket در حالی که SSE ها از پروتکل HTTP استفاده می کنند. همچنین، SSE ها فقط می توانند داده ها را به داخل منتقل کنند text/event-stream قالب

ارسال رویدادها از سرور

در یک سرور اصلی nodejs (express)، می‌توانید یک نقطه پایانی تعریف کنید تا اشتراک‌های مشتریان را مجاز کند و آنها را در یک مجموعه منحصربفرد ذخیره کنید.

const clients = new Set();

const addSubscription = (client) = {
    clients.add(client);
    console.log(`Client ${client} connected`);
}

const removeSubscription = (client) = {
    clients.delete(client);
    console.log(`Client ${client} disconnected`);
}

app.get("/subscribe", (req, res) = {
    const client = new URLSearchParams(req.query).get("id") || crypto.randomUUID();
    
    addSubscription(client);

    // ...

    req.on('close', () = {
        removeSubscription(client);
    })
})

هنگامی که یک اشتراک اضافه شده و در …

Source link