【问题标题】:Store topic specific data for a Phoenix Channel存储 Phoenix 频道的主题特定数据
【发布时间】:2015-09-02 19:41:13
【问题描述】:

假设Channel 有多个用户连接到特定主题,例如"rooms:lobby",我希望能够存储与频道相关联的信息,我可以检索并可能在每次收到新消息时进行更新in. 从某种意义上说,我希望每个主题都是自己的 GenServer-like 事物。

据我所知,Phoenix.Socket.assign/3 存储每个用户的本地信息,因此无法正常工作。

【问题讨论】:

  • 我不能完全告诉@Havvy,但我认为您将几个不同的概念混为一谈。我认为 Channel 是 Phoenix 的概念,其中“房间”是特定于您的聊天应用程序的东西。也许改写你的问题?就目前而言,这有点令人困惑。
  • 是的,多阅读参考文档,我发现它被称为“主题”,而不是房间。我会更新问题以使用正确的术语。
  • 你想只将信息存储在内存中还是持久化?什么样的数据,例如整个对话或围绕事件/时间/等数量的“元式”数据?
  • 我想我理解@Havvy 的问题,看起来可以这样看:如果Phoenix 让你做def join("room:" <> roomid, _params, socket) do,我如何访问handle_inhandle_out 中的roomid,例如.

标签: elixir phoenix-framework


【解决方案1】:

我仍然无法完全弄清楚你在问什么,但如果我是你,我会考虑使用 Elixir Agents 来尝试做你正在做的事情。我会发布我正在查看的 Agents 文档的部分,但正如我所说,我不确定我是否正确理解了您的问题。

【讨论】:

  • 我要对此表示赞同,因为这最终是我所做的,但这并不是真正的 /using/ Phoenix,而只是为似乎不存在的东西添加了一个杂物。
猜你喜欢
  • 2020-03-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
  • 2013-05-11
  • 1970-01-01
  • 2017-11-09
相关资源
最近更新 更多