Websocket 我是否可以将分配添加到“;主插座&x201D;在连接已经建立之后?
正如所解释的,当客户机第一次与服务器连接时,将创建一个“主套接字/进程”,并保存其分配。稍后,当客户机加入特定的频道/主题时,每个频道的套接字/进程都会复制这些分配,并可以随意添加到这些分配中 我现在有一个用例,当用户加入他们自己的频道Websocket 我是否可以将分配添加到“;主插座&x201D;在连接已经建立之后?,websocket,elixir,phoenix-framework,Websocket,Elixir,Phoenix Framework,正如所解释的,当客户机第一次与服务器连接时,将创建一个“主套接字/进程”,并保存其分配。稍后,当客户机加入特定的频道/主题时,每个频道的套接字/进程都会复制这些分配,并可以随意添加到这些分配中 我现在有一个用例,当用户加入他们自己的频道(即用户:{user\u id}),我从数据库中检索一些关于用户的信息,这些信息应该对该用户以后加入的所有频道全局可用。但是,我还没有找到一种方法将这些信息放入socket.assignments,以便它们在任何地方都可用。如果我尝试分配它们,它们将仅在该特定us
(即用户:{user\u id})
,我从数据库中检索一些关于用户的信息,这些信息应该对该用户以后加入的所有频道全局可用。但是,我还没有找到一种方法将这些信息放入socket.assignments
,以便它们在任何地方都可用。如果我尝试分配它们,它们将仅在该特定user:#{user_id}
频道的socket.assigns
中可用
有办法吗?我是否应该在用户首次连接时,而不是在他们加入单个用户频道时,尝试一次性获取所有这些信息?不同的频道意味着不同的套接字 最简单的解决方案是保持永久状态(
Agent
,ETS
,DETS
,mnesia
,…),持有地图user\u id=>user\u info
,并在需要此信息时查询此状态