ActionCable отправка сообщения

127
03 февраля 2019, 12:30

пришлось использовать библиотеку ws ActionCable в проекте но столкнулся скорее всего с недопониманием. Как отправить такое сообщение с такой командой и передать body в ActionCable? В документации этого не описано.

В общем должна уйти такая команда на сервер с такими данными:

const subscribeCommand = JSON.stringify({
  command: 'message',
  identifier: {
    channel: 'ChatRoomChannel',
    chat_room_id: id // typeof number
  },
  data: {
    action: 'send_message',
    data: {
      body: data.message.message, // typeof string
      chat_room_id: id // typeof number
    }
  }
})
Answer 1

Пришлось помучатся, всем кому придется с ним работать возможно поможет. Что-бы отправить сообщение на сервер достаточно к сабскрайбу добавить метод sendMessage и вызывать его передавая ему свои параметры mySubscription.sendMessage(...params).

let subscription = null; 
let cable = Cable.createConsumer(`wss://YOUR-WS-SERVER/cable`); 
 
function subscribeToChannel(id) { // конектимся к чат руму 
  subscription = cable.subscriptions.create({ 
    channel: `channel`, 
    chat_room_id: id 
  }, { 
    connected: function() { 
      console.log('connected to chat room channel') 
    }, 
    received: function(data) { 
      console.log('some massage', data) 
    }, 
    sendMessage: function(message, to) { // добавляем метод sendMessage к сабскрайбу 
      console.log(message, to) 
      this.perform('send_message', { 
        body: message, 
        to: to 
      }); 
    } 
  }); 
} 
 
function sendMessage(yourMessage, id) { 
  subscription.sendMessage(yourMessage, id) // вызываем тот самый метод sendMessage который мы добавили 
}

READ ALSO
Как разобрать данные vk api wall.get через vue?

Как разобрать данные vk api wall.get через vue?

Получаю данные через https://vkcom/dev/wall

172
Элементы, каждый увеличенный на 1 на javascript

Элементы, каждый увеличенный на 1 на javascript

Нужно чтобы с каждой новой строчки звездочка увеличивалась на 1 до 10, те вот так:

130
Мутации React + Apollo

Мутации React + Apollo

Пытаюсь сделать запрос для добавления новой записи в базу данных graphql с помощю React + ApolloПроблема в том, что запрос, вроде как выполняется, но в базу...

127