echo_protocol.erl 503 B

12345678910111213141516171819
  1. -module(echo_protocol).
  2. -export([start_link/4, init/4]).
  3. start_link(ListenerPid, Socket, Transport, Opts) ->
  4. Pid = spawn_link(?MODULE, init, [ListenerPid, Socket, Transport, Opts]),
  5. {ok, Pid}.
  6. init(ListenerPid, Socket, Transport, _Opts = []) ->
  7. ok = ranch:accept_ack(ListenerPid),
  8. loop(Socket, Transport).
  9. loop(Socket, Transport) ->
  10. case Transport:recv(Socket, 0, 5000) of
  11. {ok, Data} ->
  12. Transport:send(Socket, Data),
  13. loop(Socket, Transport);
  14. _ ->
  15. ok = Transport:close(Socket)
  16. end.