anchor.diff:      {ok, State :: term()} | {ok, State :: term(), Keepalive :: integer()}.
   init([], _ConnState) ->
       ?error("INIT ~p", [_ConnState]),
  -    register(?MODULE, self()),
       {ok, #{}}.
   
   %%--------------------------------------------------------------------
  
positive.code:     CertFile = oz_plugin:get_cert_path(),
      Options = [{keyfile, KeyFile}, {certfile, CertFile}, {cacertfile, CACertFile}],
  
      websocket_client:start_link(Address, ?MODULE, [], Options).
  
  %%--------------------------------------------------------------------
  %% @doc
  
negative.code:     {ok, State :: term()} |
      {reply, websocket_req:frame(), State :: term()} |
      {close, Reply :: binary(), State :: term()}.
  websocket_info(register, _ConnState, _State) ->
      ?error("INFO ~p", [register]),
      try
          true = register(?MODULE, self()),
          {ok, _State}
      catch
          E:R ->
              ?error_stacktrace("Unable to register ~p:~p", [E, R]),
              {close, <<"closed">>, _State}
      end;
  
  websocket_info(_Msg, _ConnState, _State) ->
      ?error("INFO ~p", [_Msg]),
      {ok, _State}.
  