пришлось использовать библиотеку 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
}
}
})
Пришлось помучатся, всем кому придется с ним работать возможно поможет. Что-бы отправить сообщение на сервер достаточно к сабскрайбу добавить метод 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 который мы добавили
}
Нужно чтобы с каждой новой строчки звездочка увеличивалась на 1 до 10, те вот так:
Пытаюсь сделать запрос для добавления новой записи в базу данных graphql с помощю React + ApolloПроблема в том, что запрос, вроде как выполняется, но в базу...