| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- const websocket = new Vue({
- el: "#websocket",
- created: () => {
- this.socket = new WebSocket("wss://api-pub.bitfinex.com/ws/2")
- this.socket.onopen = () => {
- websocket.connected = true
- };
- this.socket.onclose = () => {
- websocket.info = "";
- websocket.connected = false;
- };
- this.socket.onmessage = (message) => {
- json = JSON.parse(message.data);
- if (json.event == "info") websocket.info = `Server ${json.serverId} v${json.version}`;
- if (Array.isArray(json) && json[1] !== "hb") websocket.processValues(json);
- };
- },
- data: {
- connected: false,
- info: "",
- socket: undefined
- },
- methods: {
- processCandle: (candle) => {
- console.log(candle);
- },
- processValues: (json) => {
- if (Array.isArray(json[1][0])) {
- json[1].forEach((data) => websocket.processCandle(data));
- } else {
- websocket.processCandle(json[1]);
- }
- }
- },
- watch: {
- connected: (connected) => {
- if (connected === true) this.socket.send('{"event":"subscribe","channel":"candles","key":"trade:1m:tBTCUSD"}');
- }
- }
- });
|