【发布时间】:2019-05-24 08:29:19
【问题描述】:
我知道在 Phoenix Channel 中,服务器可以通过套接字分配保持状态,例如
def join("room:lobby", payload, socket) do
socket = socket
|> assign(:message, Enum.random(@messages))
|> assign(:albums, [])
{:ok, socket}
end
但是,我无法确定客户是否可以通过任何方式访问这些分配。
我的困惑是,如果一个套接字连接应该在服务器和客户端之间保持直到它被终止,那么客户端不应该也能够访问这个连接中的内容吗?
或者是不是所有这些分配都只保存在服务器端进程中,因此客户端无法访问,即使客户端在某些情况下确实与服务器保持连接怎么办?
如果是这样的话,似乎服务器必须明确地向客户端广播它存储的任何分配,如果它愿意的话?
【问题讨论】:
标签: javascript websocket elixir phoenix-framework channel