Current section

Files

Jump to
nex_core lib nex live_reload_socket.ex
Raw

lib/nex/live_reload_socket.ex

defmodule Nex.LiveReloadSocket do
@moduledoc """
WebSocket handler for live reload functionality.
Uses Phoenix.PubSub to receive file change notifications.
"""
@behaviour WebSock
require Logger
@impl true
def init(_opts) do
# Subscribe to live reload events
Phoenix.PubSub.subscribe(Nex.PubSub, "live_reload")
{:ok, %{}}
end
@impl true
def handle_in({_msg, _opts}, state) do
# Ignore incoming messages from client
{:ok, state}
end
@impl true
def handle_info({:reload, _path}, state) do
# Send reload message to client
msg = Jason.encode!(%{reload: true})
{:push, {:text, msg}, state}
end
def handle_info(_msg, state) do
{:ok, state}
end
@impl true
def terminate(_reason, _state) do
:ok
end
end