Keamanan dan Deployment Produksi
Demo ini belum memiliki autentikasi. Dalam aplikasi nyata, jangan mempercayai user_name, client_id, atau room yang dikirim browser. Identitas sebaiknya berasal dari session atau token bertanda tangan yang diverifikasi ketika koneksi WebSocket dibuat.
Tambahkan sebelum produksi:
- login dan otorisasi akses setiap room;
- HTTPS serta
wss://untuk WebSocket terenkripsi; - pemeriksaan Origin dan token koneksi;
- rate limiting yang dibagikan antarpeladen, misalnya melalui Redis;
- batas ukuran payload pada proxy dan aplikasi;
- moderasi, blokir, dan pelaporan pengguna;
- penghapusan atau retensi riwayat sesuai kebijakan privasi;
- logging tanpa menyimpan token atau data rahasia;
- Supervisor atau systemd untuk menjaga proses Ratchet tetap berjalan;
- reverse proxy Nginx dengan dukungan header Upgrade WebSocket;
- pub/sub jika aplikasi dijalankan pada lebih dari satu instance.
Untuk bisnis yang membutuhkan chat internal, layanan pelanggan realtime, dashboard operasional, atau sistem pemesanan khusus, kebutuhan arsitektur sebaiknya dinilai berdasarkan jumlah pengguna, aturan akses, dan target kapasitas. Tim KodingPlus menyediakan jasa pembuatan website di Bali untuk pengembangan website dan sistem berbasis web yang disesuaikan dengan proses bisnis, termasuk integrasi fitur realtime bila memang dibutuhkan.
Catatan Akhir
Sekarang Anda memiliki fondasi aplikasi chat realtime menggunakan CodeIgniter 4, Ratchet, MySQL, Bootstrap, CSS, dan JavaScript. CodeIgniter menangani halaman serta riwayat HTTP, sedangkan Ratchet menjaga koneksi WebSocket dan menyiarkan pesan baru.
Source code lengkap, migration, file konfigurasi contoh, CSS, JavaScript, dan alternatif database.sql tersedia pada paket unduhan. Pengembangan selanjutnya yang paling tepat adalah menambahkan login CodeIgniter Shield, percakapan privat, indikator sedang mengetik, status pesan dibaca, upload lampiran, dan notifikasi.
