WebSocket adalah protokol komunikasi dua arah yang memungkinkan koneksi persistens antara server dan klien tanpa perlu melakukan polling berulang. Tutorial ini akan menunjukkan cara menjalankan WebSocket menggunakan Node.js di cPanel, cocok untuk aplikasi real-time seperti chat, notifikasi, dan dashboard monitoring.
Apa itu WebSocket?
WebSocket memungkinkan komunikasi interaktif antara browser dan server. Berbeda dengan HTTP, WebSocket membuka koneksi terus-menerus yang hemat bandwidth dan sangat cepat.
Syarat Sebelum Mulai
Sebelum mengikuti tutorial ini, diasumsikan Anda:
- Sudah memiliki kode WebSocket berbasis Node.js (file seperti
app.js
atauserver.js
). - Memiliki akses ke cPanel yang mendukung Node.js.
- Telah mengaktifkan versi Node.js melalui fitur Setup Node.js App di cPanel.
- Sudah memiliki domain atau subdomain yang akan digunakan untuk menjalankan aplikasi.
Langkah-Langkah Menjalankan WebSocket dengan Node.js di cPanel
Buat Aplikasi Node.js di cPanel
- Login ke cPanel
- Cari dan klik Menu Setup Node.js App.

- Pilih versi Node.js yang diinginkan.
- Setel Application Root (misalnya:
websocket-app
) dan Application URL. - Setelah diisi semua seperti dibawah ini bisa langsung klik Create.

Ambil Sertifkat dan Private Key SSL
Agar websocket berjalan dengan aman, maka kita perlu menjalankannya melalui https
atau yang biasa disebut dengan Websocket Secure (wss) . Jadi kita perlu mengambil sertifkat dan private key SSL Let’s Encrypt! dari cPanel. Untuk langkah-langkahnya seperti berikut.
- Klik menu SSL/TLS

- Selanjutnya bisa klik Manage SSL Sites pojok kanan bawah.

- Scroll kebawah dan temukan section Install an SSL Website.

- klik Select a Domain, dan pilih domain yang ingin Anda jadikan websocket, lalu klik Autofill by Domain, untuk menampilakan sertifkat (CRT) dan private key SSL.

- Simpan Certificate (CRT) dan Private Key ke Notepad, untuk kita gunakan di websocket.
Request Open Port ke Technical Support
Untuk dapat menjalankan WebSocket, Anda wajib membuka port khusus di shared hosting yang Anda dapatkan. Di layanan shared hosting Natanetwork, port tidak dibuka sembarangan demi alasan keamanan.
Catatan penting:
✅ Anda hanya diperbolehkan membuka 2 port aktif di server hosting Anda.
✅ Silakan ajukan request open port melalui tiket ke bagian Technical Support.
✅ Anda akan diberikan rekomendasi port yang tersedia dan aman digunakan.
📨 Panduan lengkap membuat tiket bisa dibaca di sini:
👉 Cara open ticket pada web Natanetwork
Tambahkan File Aplikasi Websocket
- Masuk ke file manager dan buka folder
websocket-app
. Buat filekey.pem
untuk menaruh private key SSL yang sudah kita ambil ke websocket.

- Lakukan hal yang sama untuk
cert.pem
untuk menaruh certificate (crt) ke websocket.

- Pada contoh dibawah ini merupakan websocket sederhana yang dijalankan di port
5331
dan telah import file sertfikat SSL dengan isi seperti berikut.
const fs = require('fs');
const https = require('https');
const WebSocket = require('ws');
// Tentukan port yang available di server hosting
const port = 5331;
// import file sertifikat SSL (sesuaikan path dengan lokasi sertifikat)
const serverOptions = {
key: fs.readFileSync('./key.pem'),
cert: fs.readFileSync('./cert.pem')
};
// Buat server HTTPS
const httpsServer = https.createServer(serverOptions, (req, res) => {
res.writeHead(200);
res.end('WebSocket Secure Server (WSS) is running');
});
const wss = new WebSocket.Server({ server: httpsServer });
let clientCounter = 0;
wss.on('connection', ws => {
clientCounter++;
ws.id = clientCounter;
console.log(`Klien ${ws.id} terhubung.`);
ws.send(`Selamat datang! Anda adalah Klien ${ws.id} (terhubung via WSS).`);
ws.on('message', message => {
console.log(`Pesan dari Klien ${ws.id}: ${message}`);
const broadcastMessage = `Klien ${ws.id}: ${message}`;
wss.clients.forEach(client => {
if (client.readyState === WebSocket.OPEN) {
client.send(broadcastMessage);
}
});
});
ws.on('close', () => {
console.log(`Koneksi Klien ${ws.id} ditutup.`);
const departureMessage = `Klien ${ws.id} telah keluar.`;
wss.clients.forEach(client => {
if (client.readyState === WebSocket.OPEN) {
client.send(departureMessage);
}
});
});
ws.on('error', error => {
console.error(`Terjadi error pada Klien ${ws.id}:`, error);
});
});
httpsServer.listen(port, () => {
console.log(`Server WebSocket Secure (WSS) berjalan di wss://websocket.natanet.my.id:${port}`);
});
Install Dependensi WebSocket
Kembali ke halaman Setup Node.js App → klik nama aplikasi → klik tombol Run NPM Install.

Atau akses terminal (SSH) ke aplikasi Anda dan jalankan:
npm install
Jalankan Websocket
Pastikan aplikasi berjalan dengan klik tombol Start App di halaman Setup Node.js App.

Tes Koneksi WebSocket
Anda bisa menguji koneksi dengan browser menggunakan websocketclient.com

Kesimpulan
Dengan mengikuti langkah-langkah pada artikel ini, Anda kini memahami cara menggunakan WebSocket di Node.js dengan cPanel dengan koneksi aman (wss://
) menggunakan sertifikat SSL. Pastikan Anda sudah mengatur environment Node.js dengan benar, men-deploy aplikasi ke folder yang tepat, serta mengajukan permintaan port terbuka ke technical support. Dengan konfigurasi yang benar, Anda dapat menjalankan aplikasi real-time berbasis WebSocket secara lancar di cPanel hosting.