3
Sitepoint's tutorial에 따라 롤 플레이를위한 대화방으로 작동하도록 설계된 RoR 응용 프로그램에서 ActionCable을 사용하고 있습니다. 나는 그것을 설정했고, 메시지가 생성 될 때마다 예상대로 메시지가 방송됩니다. 그러나 대화방 페이지가로드 될 때마다 동일한 사용자에 대한 새로운 구독이 만들어 지므로 메시지가 여러 번 나타납니다./roleplays.coffee
ActionCable은 여러 번 사용자를 등록합니다
응용 프로그램/자산/자바 스크립트/채널 :
jQuery(document).on 'turbolinks:load', ->
messages = $('#messages')
if $('#messages').length > 0
App.global_chat = App.cable.subscriptions.create {
channel: "RoleplaysChannel"
roleplay_id: messages.data('roleplay-id')
},
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) ->
messages.append(data)
console.log(data)
send_message: (message, roleplay_id) ->
@perform 'send_message', message: message, roleplay_id: roleplay_id
$('#new_message').submit (e) ->
$this = $(this)
textarea = $this.find('#message_body')
e.preventDefault()
if $.trim(textarea.val()).length > 1
App.global_chat.send_message textarea.val(), messages.data('roleplay-id')
textarea.val('')
return false