-3

我有使用 phoenix 框架编写的简单聊天应用程序。

我想访问套接字内的一些数据

这是我使用的方法

def join("room:" <> _user, _, socket) do
    IO.inspect socket
    send self(), :after_join
    {:ok, socket}
  end

它将提供包含所有细节的漂亮地图。使用此方法获取所有房间(主题:“房间: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
4

1 回答 1

1

你正在修补的thing不是每个说的地图。也就是我们通常所说的struct!Struct 是具有明确定义的字段的映射(类似于您可能从其他语言中知道的对象)。

正如您在检查时已经发现的那样,您可以读取所有键值对。

当你想访问结构的字段时,你可以说struct.field. 请阅读 Elixir 网站上的教程以获取更多信息。

于 2017-07-21T21:33:47.723 回答