%Error{error: "wamp.error.no_session"}
sess_name ->
- Sess.add(sess_name, pid)
+ case Sess.connected?(sess_name) do
+ true ->
+ send(pid, {:connected, name})
+
+ false ->
+ :noop
+ end
+
+ Registry.register(dependent_registry_name(name), pid, pid)
end
end
__MODULE__.call(name, {:send_request, request}, timeout)
end
- def add(name, pid) do
- __MODULE__.call(name, {:add, pid})
+ @spec connected?(name :: atom()) :: true | false
+ def connected?(name) do
+ __MODULE__.call(name, :connected)
end
@impl true
- def handle_call({:add, pid}, from, _, %SL{data: %Sess{name: name, connected: conn}} = sl) do
- case conn do
- true ->
- send(pid, {:connected, name})
-
- false ->
- :noop
- end
-
- r = Registry.register(Client.dependent_registry_name(name), pid, pid)
- {:ok, sl, [{:reply, from, r}]}
- end
+ def handle_call(:connected, from, _, %SL{data: %Sess{connected: conn}} = sl),
+ do: {:ok, sl, [{:reply, from, conn}]}
@impl true
def handle_call(