gpt4 book ai didi

ruby-on-rails - ActionCable-如何显示已连接的用户数?

转载 作者:行者123 更新时间:2023-12-02 16:37:45 26 4
gpt4 key购买 nike

我正在尝试使用Action Cable创建一个简单的类似于聊天的应用程序(计划扑克应用程序)。我对术语,文件层次结构以及回调如何工作感到有些困惑。

这是创建用户 session 的操作:

class SessionsController < ApplicationController
def create
cookies.signed[:username] = params[:session][:username]
redirect_to votes_path
end
end

然后,用户可以发布应广播给所有人的投票:
class VotesController < ApplicationController
def create
ActionCable.server.broadcast 'poker',
vote: params[:vote][:body],
username: cookies.signed[:username]
head :ok
end
end

到目前为止,一切对我来说都很清楚,而且一切正常。问题是-如何显示已连接的用户数?当用户(消费者)连接时,是否在JS中触发了回调?我想要的是当我以隐身模式在3个不同的浏览器中打开3个标签时,我想显示“3”。当新用户连接时,我希望数字增加。如果有任何用户断开连接,则该数字应减少。

我的 PokerChannel:
class PokerChannel < ApplicationCable::Channel
def subscribed
stream_from 'poker'
end
end
app/assets/javascripts/poker.coffee:
App.poker = App.cable.subscriptions.create 'PokerChannel',

received: (data) ->
$('#votes').append @renderMessage(data)

renderMessage: (data) ->
"<p><b>[#{data.username}]:</b> #{data.vote}</p>"

最佳答案

似乎一种方法是使用

ActionCable.server.connections.length

(请参阅注释中的警告)

关于ruby-on-rails - ActionCable-如何显示已连接的用户数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32905259/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com