How to stop :timer

Timers are not identified my the message they send, but the reference returned when starting the timer.

ref = :timer.send_interval(1000, self(), :tick)
:timer.cancel(ref)

In your case you’d need to retain the reference in your state, e.g. in socket.private.