Socket di Elysia-Light

Elysia-Light menyediakan utility socket berbasis Socket.IO untuk menangani komunikasi realtime seperti notifikasi, update status, atau trigger event tanpa polling. Utility ini dirancang eksplisit, terkontrol, dan mudah diintegrasikan dengan API, queue, maupun cron.

Konsep Dasar Socket

Socket memungkinkan server dan client berkomunikasi dua arah secara realtime. Di Elysia-Light, socket diposisikan sebagai channel event, bukan pengganti API. Mayoritas logic tetap berada di API atau queue, sedangkan socket digunakan untuk trigger dan push event.

Menjalankan Socket Server

Socket server dijalankan secara terpisah dari HTTP server. Utility socket.start akan membuat instance Socket.IO server dan mengatur middleware serta event binding secara otomatis.
Kode berhasil di copy!
5

Registrasi Event Socket

Event socket didaftarkan melalui EventRegistry. Event dibedakan antara event publik dan event yang membutuhkan autentikasi user.
Kode berhasil di copy!
5

Auth Event

Event yang didaftarkan melalui auth() akan memverifikasi access token sebelum handler dijalankan. Jika token tidak valid, event akan ditolak dan client menerima error.

Emit Event

Elysia-Light menyediakan beberapa helper untuk mengirim event ke client, room, atau seluruh client yang terhubung.
Kode berhasil di copy!
5

Room dan Namespace

Socket utility mendukung room untuk grouping client dan namespace untuk pemisahan konteks realtime. Room umum digunakan untuk fitur seperti chat room, notifikasi per user, atau per module.
Kode berhasil di copy!
5

Integrasi dengan Queue

Pola umum di Elysia-Light adalah menggunakan queue untuk memproses logic berat, lalu mengirim hasilnya ke client melalui socket. Pendekatan ini menjaga performa API dan socket tetap ringan.
Kode berhasil di copy!
5

Best Practice

Gunakan socket hanya untuk realtime trigger dan push event. Hindari memindahkan logika bisnis utama ke socket handler. Selalu anggap socket sebagai channel event, bukan transport data utama.