Also figured out…
In init/1,
Process.send_after(self(), :ping, ping_timeout)
Then, add a handle_info
@impl true
def handle_info(:ping, %{options: options} = state) do
ping_timeout = Keyword.get(options, :ping)
Process.send_after(self(), :ping, ping_timeout)
{:push, {:ping, ""}, state}
end
Will suggest the peer has to send a PONG, and if it does, that will count as a communication and thus will reset the timeout.


















