使用setTimeout重新订阅websocket频道

问题描述

我已经在vue.js中编写了一个代码,该代码创建了一个websocket连接并订阅一个通道以获取美元的BTC数据。

但是该渠道发送了一些价格的大小更新后的数据,但是我需要一种重新订阅该渠道以获取更新价格的方法

Here is the link for bybit api documentation

这是我尝试的代码

function GetData(that) {
     

        var ws_bybit_ita = new WebSocket("wss://stream.bybit.com/realtime");

            ws_bybit_ita.onopen = function () {


                ws_bybit_ita.send(
                    JSON.stringify({ op: "subscribe",args: ["orderBook_200.100ms.BTCUSD"] })
                )


            }

            ws_bybit_ita.onmessage = function (msgEvent) {
                let response = JSON.parse(msgEvent.data)

                const data = response;

                if (data.data && data.type == "snapshot") {
                    
                    console.log(data.data);
                    

                } else if (data.type == "delta") {
                    

            }

        

        CheckState(that,ws_bybit_ita)

    }; 
    function CheckState(that,ws_bybit_ita) {
        if (ws_bybit_ita.readyState === 1) {
            ws_bybit_ita.send(
                JSON.stringify({ op: "unsubscribe",args: ["orderBook_200.100ms.BTCUSD"] })
            )
            ws_bybit_ita.close();
        } 
        
        
        setTimeout(function () {

           GetData(that);

        },500);
        
    };

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...