0Pricing
WebSockets & Real-Time Systems with Spring · Pelajaran

Menangani Peristiwa Siklus Hidup WebSocket di Spring

Pelajari cara mengelola siklus hidup koneksi WebSocket di Spring dengan menangani peristiwa koneksi, pesan, kesalahan, dan pemutusan menggunakan WebSocketHandler.

Menangani Peristiwa Siklus Hidup WebSocket di Spring adalah pelajaran WebSockets & Real-Time Systems with Spring gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar WebSockets & Real-Time Systems with Spring, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus WebSockets & Real-Time Systems with Spring mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

The Connection Lifecycle

A WebSocket connection moves through clear stages: it opens, exchanges messages, may hit errors, and finally closes. Spring lets you hook into each stage to manage state and resources cleanly.

This lesson covers handling those lifecycle events.

The WebSocketHandler Interface

Spring's low-level API centers on the WebSocketHandler interface. Extending TextWebSocketHandler gives you override points for each lifecycle event without implementing every method.

Connection Established

afterConnectionEstablished fires when a client successfully connects. Use it to register the session and initialize per-connection state.

@Override
public void afterConnectionEstablished(WebSocketSession session) {
    sessions.put(session.getId(), session);
    System.out.println('Connected: ' + session.getId());
}

Tracking Sessions

Keep active sessions in a thread-safe collection so you can broadcast and clean up. A ConcurrentHashMap keyed by session id is a common choice.

private final Map<String, WebSocketSession> sessions =
        new ConcurrentHashMap<>();

Handling Messages

handleTextMessage runs for each incoming message. Here you parse, validate, and act on the payload, then optionally reply or broadcast.

@Override
protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
    String payload = message.getPayload();
    session.sendMessage(new TextMessage('echo: ' + payload));
}

Handling Transport Errors

handleTransportError is called when a low-level error occurs on the connection. Log the problem and close the session gracefully if it cannot recover.

@Override
public void handleTransportError(WebSocketSession session, Throwable ex) throws Exception {
    System.out.println('Transport error: ' + ex.getMessage());
    if (session.isOpen()) {
        session.close(CloseStatus.SERVER_ERROR);
    }
}

Connection Closed

afterConnectionClosed fires when the connection ends, whether the client left or the server closed it. Always clean up here to avoid leaks.

@Override
public void afterConnectionClosed(WebSocketSession session, CloseStatus status) {
    sessions.remove(session.getId());
    System.out.println('Closed: ' + status.getCode());
}

Close Status Codes

Close events carry a status code explaining why:

  • 1000 Normal closure
  • 1001 Going away (page unload)
  • 1006 Abnormal closure (no close frame)
  • 1011 Server error

Logging these helps diagnose connection problems.

Registering the Handler

Wire the handler to a path in a configuration class implementing WebSocketConfigurer.

@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
    registry.addHandler(new MyHandler(), '/ws')
            .setAllowedOrigins('https://app.example.com');
}

Cleaning Up Resources

Per-connection resources (timers, subscriptions, buffers) must be released on close and on error. Failing to do so causes memory leaks that grow with every dropped connection.

Heartbeats and Idle Timeouts

Dead connections may never fire a clean close. Use ping/pong heartbeats or idle timeouts to detect and reap stale sessions so your session map stays accurate.

Quick Check

Test your understanding of the WebSocket lifecycle.

Recap

You learned to handle the WebSocket lifecycle in Spring with TextWebSocketHandler: track sessions on connect, process messages, handle transport errors, and clean up on close. Close status codes, heartbeats, and idle timeouts keep your connection state healthy and leak-free.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menangani Peristiwa Siklus Hidup WebSocket di Spring” gratis?

Ya — teks lengkap “Menangani Peristiwa Siklus Hidup WebSocket di Spring” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus WebSockets & Real-Time Systems with Spring, upgrade ke CoddyKit PRO. Kursus WebSockets & Real-Time Systems with Spring mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menangani Peristiwa Siklus Hidup WebSocket di Spring”?

Pelajari cara mengelola siklus hidup koneksi WebSocket di Spring dengan menangani peristiwa koneksi, pesan, kesalahan, dan pemutusan menggunakan WebSocketHandler. Kamu berlatih WebSockets & Real-Time Systems with Spring dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai WebSockets & Real-Time Systems with Spring?

Tidak diperlukan pengalaman sebelumnya. WebSockets & Real-Time Systems with Spring di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Menangani Peristiwa Siklus Hidup WebSocket di Spring” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran WebSockets & Real-Time Systems with Spring ini?

Ya. Setiap pelajaran WebSockets & Real-Time Systems with Spring menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Spring Boot untuk WebSockets
  2. Konfigurasi Titik Akhir WebSocket
  3. Pesan Dasar Klien-Server
  4. Menangani Peristiwa Siklus Hidup WebSocket di Spring
← Kembali ke WebSockets & Real-Time Systems with Spring