Cara Menjalankan WebSocket dengan Node.js di cPanel
Pengantar
WebSocket adalah protokol komunikasi yang menyediakan saluran komunikasi dua arah secara penuh (full-duplex) antara klien dan server. Dalam pengembangan aplikasi real-time seperti chat, notifikasi, game, atau dashboard live-data, WebSocket jauh lebih efisien dibandingkan HTTP biasa.
Prasyarat
- Hosting mendukung Node.js (layanan shared hosting di Plasawebhost sudah dilengkapi fitur Setup Node.js App).
- Port WebSocket sudah dibuka oleh provider.
- Domain/subdomain aktif (SSL opsional tapi disarankan).
- Akses ke Terminal (SSH) di cPanel.
Cara Menjalankan WebSocket dengan Node.js di cPanel
- Login ke cPanel
- Cari menu "Setup Node.js App".
- Klik "Create Application" dan isi data berikut:
- Application Mode: Production
- Node.js version: pilih versi yang didukung (misal 18.x)
- Application root: misalnya myapp
- Application URL: pilih domain/subdomain yang ingin digunakan
- Application startup file: misalnya server.js
- Klik Create dan tunggu sampai environment selesai dibuat.
- Masuk ke File Manager, buka folder myapp dan edit server.js dengan kode berikut
const express = require('express'); const http = require('http'); const WebSocket = require('ws'); // Buat server WebSocket di port 3001 const app = express(); const server = http.createServer(app); const wss = new WebSocket.Server({ server }); // Saat koneksi client masuk app.use(express.static('public')); app.get('/', (req, res) => { res.send('Hello WebSocket'); }); wss.on('connection', (ws) => { console.log('Client connected'); // Kirim pesan ke client ws.send('Hello from server!'); // Tangkap pesan dari client ws.on('message', (message) => { console.log('Received from client:', message); }); // Saat client disconnect ws.on('close', () => { console.log('Client disconnected'); }); }); server.listen(process.env.PORT || 3001, () => { console.log('Server running...'); });
- Buat file Package.json dan isi dengan kode berikut
{ "name": "myapp", "version": "1.0.0", "main": "server.js", "scripts": { "start": "node server.js" }, "dependencies": { "express": "^4.21.2", "ws": "^8.18.3" } }
- Install Module WebSocket
- Copy virtual environment dihalaman Node.js
- Masuk ke terminal masuk ke folder myapp dengan perintah yang sudah kita copy sebelumnya, dan install module
source /home/pwh/nodevenv/myapp/18/bin/activate && cd /home/pwh/myapp npm install ws
Ini akan mengunduh dan menginstall library ws, yaitu library WebSocket untuk Node.js
- Copy virtual environment dihalaman Node.js
- Jalankan Node.js
Sebelum menjalankan Node.js anda harus mengetahui bahwa terdapat 2 metode yang bisa digunakan- Metode Terminal
Anda bisa menjalankan Node.js lewat terminal dengan menggunakan perintah berikut
npm run start
CATATAN: Jika anda menjalankan Node.js lewat terminal, saat anda mengakses melalui browser anda harus menyertakan Portnya. Contoh https://namadomainanda.com:3001
- Metode cPanel
Buka Setup Node.js di cPanel, kemudian klik Start App
Jika anda menggunakan metode ini anda bisa mengakses melalui browser tanpa harus menyertakan Portnya. Contoh https://namadomainanda.com
- Metode Terminal
Kesimpulan
Menjalankan WebSocket di cPanel dengan Node.js sebenarnya sangat memungkinkan, asalkan anda menggunakan layanan Plasawebhost yang sudah mendukung fitur Node.js dan membuka port yang dibutuhkan. Dengan mengikuti langkah di atas, anda sudah bisa menjalankan aplikasi real-time seperti chat, notifikasi, atau game backend dengan protokol WebSocket langsung dari cPanel.