首页 > 编程语言 >Python实现ws订阅服务

Python实现ws订阅服务

时间:2024-03-14 15:26:38浏览次数:21  
标签:订阅 Python okx subscribe ws data channel

一、Python实现ws订阅服务

# 使用websocket订阅欧易公共频道中的 行情频道,以下是已知信息,写出Python代码
# 地址:"wss://wspap.okx.com:8443/ws/v5/public?brokerId=9999"
# 请求示例:
# {
#     "op": "subscribe",
#     "args": [{
#         "channel": "tickers",
#         "instId": "LTC-USD-200327"
#     }]
# }
from datetime import datetime, timedelta
import asyncio
import json
import websockets


async def subscribe_to_okx_channel():
    uri="wss://wspap.okx.com:8443/ws/v5/business?brokerId=9999"
    async with websockets.connect(uri) as websocket:
        # 订阅请求示例
        subscription_data = {
            "op": "subscribe",
            "args": [{
                "channel": "candle15m",
                "instId": "BTC-USDT"
            }]
        }

        # 向WebSocket服务器发送订阅请求
        await websocket.send(json.dumps(subscription_data))
        print(f"已向 {uri} candle15m 发送订阅请求")

        # 接收并处理服务器返回的数据
        while True:
            response = await websocket.recv()
            print(f"收到的数据: {response}")
            response = json.loads(response)
            data = response.get('data')
            if data:
                time_str = data[0][0]
                print('\033[32m' + '=============%s==============' % str(
                    datetime.fromtimestamp(int(time_str) / 1000)) + '\033[0m')


# 运行异步函数
asyncio.get_event_loop().run_until_complete(subscribe_to_okx_channel())

 

数据解析:

       订阅的URL:"wss://wspap.okx.com:8443/ws/v5/public?brokerId=9999"

       订阅参数:

 

       {
            "op": "subscribe",
            "args": [{
                "channel": "candle15m",
                "instId": "BTC-USDT"
            }]
        }

 

  

 

 

上面代码需要在访问外网的情况下才能运行  

标签:订阅,Python,okx,subscribe,ws,data,channel
From: https://www.cnblogs.com/1314520xh/p/18072905

相关文章

  • Python实现http接口请求数据后,往RabbitMQ里面插入数据
    python实现http接口请求数据服务后,往RABBITmq里面插入数据importtimeimportrequestsimportpikaimportdatetimebase_url='https://www.okx.com'api_url='/api/v5/market/history-mark-price-candles'#时间颗粒度[1m/3m/5m/15m/30m/1H/2H/4H]time_unit=[......
  • python string模块
    介绍ascii_letters--所有字母的字符串ascii_lowercase--小写字母的字符串ascii_uppercase--大写字母的字符串digits--十进制数字的字符串hexdigits--十六进制数字的字符串octdigits--八进制数字的字符串punctuation--标点符号的字符串printable--所有可打印的ASCII码字符......
  • 第四章 python的标准库
    第四章python的标准库一、`os`1.1基本功能1.2文件和目录操作1.2.1目录操作1.2.2文件操作1.3路径操作1.4环境变量1.4.1`os.environ`1.4.2`os.pathsep`1.4.3`os.name`1.4.4`os.system()`1.4.5`os.putenv(key,value)`和`os.unsetenv(key)`1.5进程管理1.5......
  • python基于flask共享单车管理系统 234if
    快速发展的社会中,人们的生活水平都在提高,生活节奏也在逐渐加快。为了节省时间和提高工作效率,越来越多的人选择利用互联网进行线上打理各种事务,然后线上管理系统也就相继涌现。与此同时,人们开始接受方便的生活方式。他们不仅希望页面简单大方,还希望操作方便,可以快速锁定他们需要......
  • 基于Django(python+sql)的校园二手交易系统设计与实现(完整程序+开题报告+论文)
    摘要        随着互联网的迅猛发展,校园内的二手交易市场也逐渐呈现出蓬勃的发展态势。学生们在校园生活中会产生大量的闲置物品,而其他学生也有可能需要这些物品。本论文研究了校园二手交易系统的需求分析、系统实现和测试三个部分,旨在提高校园二手交易系统的开发和测......
  • Python 向函数传递参数(小结)
    目录1、位置实参2、关键字实参3、形参默认值4、将队列的副本传入函数5、传递任意数量的实参6、传递任意数量的关键字实参1、位置实参调用函数时,传递参数的顺序与函数定义中的参数顺序一致。defperson(name,age):passperson('Marry',34)2、关键字实参调用......
  • Python 文件操作(小结)
    目录1打开文件1.1文件路径1.2打开‘中文’文件1.3 with打开1.3打开模式1.4打开异常2读取文件2.1一次性读取全部,read()2.2遍历文件,每次读取一行2.3with外使用文件内容3写文件1打开文件1.1文件路径程序文件所在路径为“当前路径”。(1)如果文件位于“......
  • python教程(中更新中)
    递归函数在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。举个例子,我们来计算阶乘n!=1x2x3x...xn,用函数fact(n)表示,可以看出:����(�)=�!=1×2×3×⋅⋅⋅×(�−1)×�=(�−1)!×�=����(�−1)×�fact(n)=n!=1×2×3×⋅⋅⋅×(n−1)×n=(n−1)!×n......
  • springboot3+vue3(九)打包部署(windows)
    1、在pom中添加打包插件坐标(如果创建项目选的是springboot创建会自动生成打包插件)<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artif......
  • C++windows编码问题
    需要注意的编码方式有三处:操作系统、程序编码(与源文件编码一致)、通信对方传入字符的编码程序编码(与源文件编码一致)操作系统编码对方传入的编码中文是否okc2A0编码的空格utf-8utf-8utf-8okokutf-8gbkgbk正常中文可以,特殊空......