我想在我的应用程序中添加User Appearances示例(来自Rails指南:https://guides.rubyonrails.org/action_cable_overview.html#example-1-user-appearances),但我不明白这一部分:
# app/channels/appearance_channel.rb
class AppearanceChannel < ApplicationCable::Channel
def subscribed
current_user.appear
end
def unsubscribed
current_user.disappear
end
def appear(data)
current_user.appear(on: data['appearing_on'])
end
def away
current_user.away
end
end
如果有人对以下句子有解释:“出现/消失的API可以由Redis,数据库或其他任何东西支持。” (正好在Rails指南中的这部分代码之上)。
我尝试了几个选项,因为在我的模型User中添加了一个“出现”的方法,它从我的模型User更改了“true”数据库值,但订阅的定义调用current_user.appear然后出现的定义调用current_user.appear(with_param)产生冲突......
可能有些东西我不明白,但我看不出它究竟是什么......
非常感谢您的回答。
关于“出现/消失API支持”的句子 - 意味着ActionCable不关心您在何处以及如何存储和处理用户状态 - 您可能只在数据库中存储一个或多个数据(如上次看到的聊天室,上次见过的时间等)。 ),您可以在redis或任何其他您喜欢的地方存储类似的数据。
(un)subscribed
方法是ActionCable本身在用户(dis)连接到该频道时调用的(通常这发生在页面加载和导航/关闭之后 - 当页面在浏览器中打开时,并不一定意味着用户实际上在他们的设备附近) ,而appear
/ away
是通过在频道上调用perform("action_name_here")
从客户端js调用的操作。示例假定客户端代码将检测用户状态并发送更新。