Class: Spikard::WebSocketHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/spikard/websocket.rb

Overview

Base class for WebSocket message handlers.

Implement this class to handle WebSocket connections and messages.

Examples:

class ChatHandler < Spikard::WebSocketHandler
  def handle_message(message)
    # Echo message back
    message
  end

  def on_connect
    puts "Client connected"
  end

  def on_disconnect
    puts "Client disconnected"
  end
end

app = Spikard::App.new

app.websocket('/chat') do
  ChatHandler.new
end

app.run

Instance Method Summary collapse

Instance Method Details

#handle_message(message) ⇒ Hash?

Handle an incoming WebSocket message.

Parameters:

  • message (Hash)

    Parsed JSON message from the client

Returns:

  • (Hash, nil)

    Optional response message to send back to the client. Return nil to not send a response.

Raises:

  • (NotImplementedError)


37
38
39
# File 'lib/spikard/websocket.rb', line 37

def handle_message(message)
  raise NotImplementedError, "#{self.class.name} must implement #handle_message"
end

#on_connectvoid

This method returns an undefined value.

Called when a client connects.

Override this method to perform initialization when a client connects.



46
47
48
# File 'lib/spikard/websocket.rb', line 46

def on_connect
  # Optional hook - default implementation does nothing
end

#on_disconnectvoid

This method returns an undefined value.

Called when a client disconnects.

Override this method to perform cleanup when a client disconnects.



55
56
57
# File 'lib/spikard/websocket.rb', line 55

def on_disconnect
  # Optional hook - default implementation does nothing
end