Skip to content

Commit 83e90f3

Browse files
committed
🔨 feat(ws): Add file websocket
1 parent 05167b4 commit 83e90f3

File tree

3 files changed

+32
-0
lines changed

3 files changed

+32
-0
lines changed
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
defmodule BackendWeb.RoomChannel do
2+
use Phoenix.Channel
3+
4+
def join("file:" <> _room_id, _params, socket) do
5+
{:ok, socket}
6+
end
7+
8+
def handle_in("edit", %{"content" => content}, socket) do
9+
# Рассылка обновлений всем клиентам
10+
broadcast!(socket, "update", %{content: content})
11+
{:noreply, socket}
12+
end
13+
end
+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
defmodule BackendWeb.UserSocket do
2+
use Phoenix.Socket
3+
4+
## Каналы
5+
# Это маршрут, на который будет подписан клиент
6+
channel "file:*", BackendWeb.RoomChannel
7+
8+
# Здесь можно добавить авторизацию (опционально)
9+
def connect(_params, socket, _connect_info) do
10+
{:ok, socket}
11+
end
12+
13+
# Укажите уникальный идентификатор пользователя, если нужно. Например, `socket.assigns.user_id`.
14+
def id(_socket), do: nil
15+
end

lib/backend_web/endpoint.ex

+4
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ defmodule BackendWeb.Endpoint do
1111
same_site: "Lax"
1212
]
1313

14+
socket "/ws", BackendWeb.UserSocket,
15+
websocket: true,
16+
longpoll: false
17+
1418
socket "/live", Phoenix.LiveView.Socket,
1519
websocket: [connect_info: [session: @session_options]],
1620
longpoll: [connect_info: [session: @session_options]]

0 commit comments

Comments
 (0)