Changeset View
Changeset View
Standalone View
Standalone View
lib/kolab_chat/web/channels/presence.ex
- This file was moved from web/channels/presence.ex.
defmodule KolabChat.Presence do | defmodule KolabChat.Web.Presence do | ||||
@moduledoc """ | @moduledoc """ | ||||
Provides presence tracking to channels and processes. | Provides presence tracking to channels and processes. | ||||
See the [`Phoenix.Presence`](http://hexdocs.pm/phoenix/Phoenix.Presence.html) | See the [`Phoenix.Presence`](http://hexdocs.pm/phoenix/Phoenix.Presence.html) | ||||
docs for more details. | docs for more details. | ||||
## Usage | ## Usage | ||||
Presences can be tracked in your channel after joining: | Presences can be tracked in your channel after joining: | ||||
defmodule KolabChat.MyChannel do | defmodule KolabChat.MyChannel do | ||||
use KolabChat.Web, :channel | use KolabChat.Web, :channel | ||||
alias KolabChat.Presence | alias KolabChat.Web.Presence | ||||
def join("some:topic", _params, socket) do | def join("some:topic", _params, socket) do | ||||
send(self, :after_join) | send(self, :after_join) | ||||
{:ok, assign(socket, :user_id, ...)} | {:ok, assign(socket, :user_id, ...)} | ||||
end | end | ||||
def handle_info(:after_join, socket) do | def handle_info(:after_join, socket) do | ||||
{:ok, _} = Presence.track(socket, socket.assigns.user_id, %{ | {:ok, _} = Presence.track(socket, socket.assigns.user_id, %{ | ||||
▲ Show 20 Lines • Show All 55 Lines • Show Last 20 Lines |