我有使用凤凰框架编写的简单聊天应用程序。
我想访问套接字中的一些数据
这是我正在使用的方法
def join("room:" <> _user, _, socket) do
IO.inspect socket
send self(), :after_join
{:ok, socket}
end
它将提供包含所有细节的精美地图。 使用此方法获取所有房间(主题:“room:Testuser”)的最佳方法是什么
这是在控制台中显示的示例结果
[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
答案 0 :(得分:1)
你正在修补的thing
不是每个人说的地图。这就是我们通常所说的struct! Struct是一个定义明确的字段的地图(类似于您可能从其他语言中了解到的对象)。
正如您在检查时发现的那样,您可以阅读所有键值对。
如果要访问结构的字段,可以说struct.field
。有关更多信息,请阅读Elixir网站上的教程。