anchor.diff:  reload(File) ->
     gen_event:notify(?MODULE, {reload, File}).
   
  +alert(Message) ->
  +  gen_event:notify(?MODULE, {alert, Message}).
  +
   init(_TransportName, Req, Opts) ->
     case cowboy_req:header(<<"upgrade">>, Req) of
       {<<"websocket">>, _} ->
  
positive.code: init([Pid]) ->
    {ok, Pid}.
  
  handle_event({reload, File}, Pid) ->
    Pid ! {reload, File},
    {ok, Pid}.
  
  handle_call(_, Pid) ->
  
negative.code:   websocket_handle(jsxn:decode(Msg), Req, Opts);
  websocket_handle(#{<<"command">> := <<"hello">>}, Req, Opts) ->
    ok = gen_event:add_handler(?MODULE, {?MODULE, self()}, [self()]),
    io:format("LiveReload client connected~n"),
    {reply, {text, ?HELLO_RESPONSE}, Req, Opts};
  websocket_handle(_Data, Req, Opts) ->
    {ok, Req, Opts}.
  
  websocket_info({reload, File}, Req, Opts) ->
    {reply, {text, ?RELOAD(File)}, Req, Opts};
  websocket_info({alert, Message}, Req, Opts) ->
    {reply, {text, ?ALERT(Message)}, Req, Opts};
  websocket_info(_Info, Req, Opts) ->
    {ok, Req, Opts}.
  
  