Прием данных через вебсокет

226
20 января 2018, 02:24

Здравствуйте! В компоненте хочу реализовать прием данных по вебсокету, соединение устанавливается, но внутри onopen не происходит отправка send https://jsfiddle.net/cergey251/tchxpbv4/.

var app = new Vue({
  el: '#app',
  data: {
    socket: null,
    message: 'Hello Vue!'
  },
  created() {
    this.socket = new WebSocket('wss://api2.poloniex.com/');
    this.socket.onopen = function() {
        this.send(JSON.stringify({
        command: 'subscribe',
        channel: 1002
      }));
    }
  }
})

Аналогичный код работает на чистом js, данные корректно приходят https://jsfiddle.net/cergey251/okxw3dtq/.

var socket = new WebSocket('wss://api2.poloniex.com/');
socket.onopen = function() {
    socket.send(JSON.stringify({
        command: 'subscribe', 
        channel: 1002
    }));
    socket.send(JSON.stringify({
        command: 'subscribe', 
        channel: 'USDT_XRP'
    }));
};
socket.onmessage = function(event) {
    var msg = JSON.parse(event.data);
    console.log(msg);
};

В чем может быть проблема? Буду очень признателен за помощь)

Answer 1

А чего вы ждали? У вас вызывается this.send, но метод не определен. Видимо надо this.socket.send?

READ ALSO
Что за promise используется в fetch?

Что за promise используется в fetch?

А что это за 2 then используется в promise? Нам на курсах только с одним показывали, две функции внутри resolve reject

209
Kак проверить результаты вычисления? [требует правки]

Kак проверить результаты вычисления? [требует правки]

Kак проверить результаты вычисления 04 + 0

278
js, ссылки, работа с данными

js, ссылки, работа с данными

Делая работу, я столкнулся с тем, что я не знаю можно ли при переходе на страничку передать передать некоторые данные для другого js файла

165
Форматирование чисел в JS. 01 вместо 1

Форматирование чисел в JS. 01 вместо 1

Нужна помощь, в cursera задание по js, нужно чтобы выводилось корректное время, при добавлении интервала

164