我正在使用ActionCable进行聊天。我想拥有普通的公共房间,私人房间和直接信息(像Slack这样的东西)。
公共房间和DM正在运作。我也可以创建私人房间并添加用户。但我想通过某种方式通知用户,他被添加到私人房间。现在,用户需要刷新他添加的新房间的页面,以显示在他的聊天列表中。
当用户被其他用户添加时,我开始慢慢抓住这个时刻,我想把一些东西写到控制台并链接到这个新房间,但它不起作用。 "聊天室不活跃"显示当有人在房间内写一些用户所属的内容时,但在这种特定情况下 - 被添加到新创建的房间 - 它根本不显示,与链接相同。
App.chatrooms = App.cable.subscriptions.create "ChatroomsChannel",
connected: ->
# Called when the subscription is ready for use on the server
disconnected: ->
# Called when the subscription has been terminated by the server
received: (data) ->
active_chatroom = $("[data-behavior='messages'][data-chatroom-id='#{data.chatroom.id}']")
if active_chatroom.length > 0
console.log 'chatroom is active"
active_chatroom.append("<div class='message'>
<a href='' class='message_profile-pic'></a>
<a href='' class='message_username'><strong>#{data.email}</strong></a>
<span class='message_star'></span>
<span class='message_content'>
#{data.body}
</span>
</div>")
debugger
else
console.log 'chatroom isnt active'
$("[data-behavior='chatroom-link'][data-chatroom-id='#{data.chatroom.id}']").css("font-weight", "bold")
chatroom_id = data.chatroom.id
$('tbody').append("<tr><td><a href='/chatrooms/#{data.chatroom.id}'>Name</a></td></tr>")
$messages = $('#messages')
$messages.scrollTop $messages.prop('scrollHeight')
speak: (chatroom_id, message) ->
@perform 'speak', {chatroom_id: chatroom_id, body: message}