]> Entropealabs - wampex_client.git/commitdiff
make sure to keep exiting requests when checking for queued messages
authorChristopher <chris@entropealabs.com>
Fri, 21 Feb 2020 03:19:11 +0000 (21:19 -0600)
committerChristopher <chris@entropealabs.com>
Fri, 21 Feb 2020 03:19:11 +0000 (21:19 -0600)
lib/wampex/session.ex

index 8964da59b8d58ae3e934474eb7ab9b743a8643b7..0d8b4e424f13fdbfb6f9b426db3d578e9a183265 100644 (file)
@@ -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)