在文档中有这个例子,但它只适用于断开连接https://hexdocs.pm/phoenix/Phoenix.Socket.html#module-examples
use Phoenix.Socket
channel "room:*", MyAppWeb.RoomChannel
def connect(params, socket, _connect_info) do
{:ok, assign(socket, :user_id, params["user_id"])}
end
def id(socket), do: "users_socket:#{socket.assigns.user_id}"
end
# Disconnect all user's socket connections and their multiplexed channels
MyAppWeb.Endpoint.broadcast("users_socket:" <> user.id, "disconnect", %{})
我试过了,它只适用于断开连接。
我读过一些地方,你可以为该用户创建一个特定的主题,但我可以使用一个实际的例子。我无法理解复杂性,可以使用一个实际的例子。
谢谢你。
我在想如果你能得到 ets 表中的底层套接字,你就可以push/4
到那个套接字,但我不知道该怎么做。