ws_active_commands_h.erl 861 B

123456789101112131415161718192021222324252627282930
  1. %% This module starts with active mode disabled
  2. %% and enables it again once a timeout is triggered.
  3. -module(ws_active_commands_h).
  4. -behavior(cowboy_websocket).
  5. -export([init/2]).
  6. -export([websocket_init/1]).
  7. -export([websocket_handle/2]).
  8. -export([websocket_info/2]).
  9. init(Req, RunOrHibernate) ->
  10. {cowboy_websocket, Req, RunOrHibernate}.
  11. websocket_init(State=run) ->
  12. erlang:send_after(1500, self(), active_true),
  13. {[{active, false}], State};
  14. websocket_init(State=hibernate) ->
  15. erlang:send_after(1500, self(), active_true),
  16. {[{active, false}], State, hibernate}.
  17. websocket_handle(Frame, State=run) ->
  18. {[Frame], State};
  19. websocket_handle(Frame, State=hibernate) ->
  20. {[Frame], State, hibernate}.
  21. websocket_info(active_true, State=run) ->
  22. {[{active, true}], State};
  23. websocket_info(active_true, State=hibernate) ->
  24. {[{active, true}], State, hibernate}.