我有使用Phoenix框架编写的简单聊天应用程序。
我想访问套接字内的一些数据
这是我为此使用的方法
def join("room:" <> _user, _, socket) do
IO.inspect socket
send self(), :after_join
{:ok, socket}
end
它将提供漂亮的地图,提供所有细节。 使用此方法获得所有房间(主题:"房间:测试用户"(的最佳方法是什么
这是控制台中显示的示例结果
[info] JOIN room:Testuser to PhoenixChat.RoomChannel
Transport: Phoenix.Transports.WebSocket
Parameters: %{}
%Phoenix.Socket{assigns: %{user: "Testuser"}, channel: PhoenixChat.RoomChannel,
channel_pid: #PID<0.409.0>, endpoint: PhoenixChat.Endpoint,
handler: PhoenixChat.UserSocket, id: nil, joined: false,
pubsub_server: PhoenixChat.PubSub, ref: nil,
serializer: Phoenix.Transports.WebSocketSerializer, topic: "room:Testuser",
transport: Phoenix.Transports.WebSocket, transport_name: :websocket,
transport_pid: #PID<0.375.0>}
[info] Replied room:Testuser :ok
您正在修补的thing
不是地图。这就是我们通常所说的结构!结构是具有明确定义的字段的映射(类似于您可能从其他语言中知道的对象(。
正如您在检查它时已经发现的那样,您可以读取所有键值对。
当您要访问结构的字段时,您可以说struct.field
.请阅读Elixir网站上的教程以获取更多信息。