alias Wampex.Roles.Peer.Error
alias Wampex.Roles.Publisher
alias Wampex.Roles.Publisher.Publish
- alias Wampex.Roles.Subscriber.Subscribe
+ alias Wampex.Roles.Subscriber.{Subscribe, Unsubscribe}
@spec start_link(name: atom(), session_data: Sess.t(), reconnect: boolean()) ::
{:ok, pid()}
end
end
+ @spec unsubscribe(name :: module(), subscription :: Unsubscribe.t(), timeout :: integer()) ::
+ :ok
+ def unsubscribe(name, %Unsubscribe{subscription_id: si} = unsub, timeout \\ 5000) do
+ case sync(name, Subscriber.unsubscribe(unsub), timeout) do
+ :ok ->
+ Registry.unregister(subscriber_registry_name(name), si)
+ :ok
+
+ er ->
+ er
+ end
+ end
+
@spec register(name :: module(), register :: Register.t(), timeout :: integer()) ::
{:ok, integer()}
def register(name, %Register{procedure: p} = reg, timeout \\ 5000) do
def project do
[
app: :wampex_client,
- version: "0.1.4",
+ version: "0.1.5",
elixir: "~> 1.9",
start_permanent: Mix.env() == :prod,
elixirc_paths: elixirc_paths(Mix.env()),