From: Christopher Date: Fri, 21 Feb 2020 03:19:11 +0000 (-0600) Subject: make sure to keep exiting requests when checking for queued messages X-Git-Url: http://git.entropealabs.com/?a=commitdiff_plain;h=3f1437cfe677122df9cffb3a2b75f2c5d621c980;p=wampex_router.git make sure to keep exiting requests when checking for queued messages --- diff --git a/lib/wampex/session.ex b/lib/wampex/session.ex index 8964da5..0d8b4e4 100644 --- a/lib/wampex/session.ex +++ b/lib/wampex/session.ex @@ -213,10 +213,17 @@ defmodule Wampex.Session do _, "Established", %SL{ - data: %Sess{request_id: r_id, transport: tt, transport_pid: t, message_queue: mq} = sess + data: + %Sess{ + request_id: r_id, + transport: tt, + transport_pid: t, + message_queue: mq, + requests: reqs + } = sess } = data ) do - {request_id, requests} = send_message_queue(r_id, mq, tt, t) + {request_id, requests} = send_message_queue(r_id, mq, tt, t, reqs) requests = remove_cast_requests(requests) {:ok, @@ -335,12 +342,12 @@ defmodule Wampex.Session do end) end - defp send_message_queue(r_id, [], _, _), do: {r_id, []} + defp send_message_queue(r_id, [], _, _, reqs), do: {r_id, reqs} - defp send_message_queue(r_id, mq, tt, t) do + defp send_message_queue(r_id, mq, tt, t, reqs) do mq |> Enum.reverse() - |> Enum.reduce({r_id, []}, fn {request, from}, {id, requests} -> + |> Enum.reduce({r_id, reqs}, fn {request, from}, {id, requests} -> r = do_send(id, tt, t, request) {r, [{r, from} | requests]} end)