首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >宾斯期货ACCOUNT_UPDATE流交易通过网络套接字问题?

宾斯期货ACCOUNT_UPDATE流交易通过网络套接字问题?
EN

Stack Overflow用户
提问于 2021-07-11 03:42:01
回答 3查看 739关注 0票数 1

在执行以下代码时,没有得到Binance api的响应,这里有什么我可能错过的吗?

代码语言:javascript
运行
复制
import json
import websocket


socket='wss://fstream.binance.com/ws'


def on_open(ws):
    print("opened")
    subscribe_message = {
        "method": "SUBSCRIBE",
        "params":
        [
         "ACCOUNT_UPDATE"
         ],
         "id": 1
         }

    ws.send(json.dumps(subscribe_message))

def on_message(ws, message):
    print("received a message")
    print(json.loads(message))     

def on_close(ws):
    print("closed connection")        

ws = websocket.WebSocketApp(socket, on_open=on_open, on_message=on_message, on_close=on_close)
ws.run_forever()
EN

回答 3

Stack Overflow用户

发布于 2022-05-24 18:05:59

我发现了这个问题。问题是,您应该从不同的http服务器为现货和期货帐户请求listen_key。供现场使用:

代码语言:javascript
运行
复制
def get_listen_key_by_REST(binance_api_key):
  url = ' https://api.binance.com/api/v1/listenKey'
  response = requests.post(url, headers={'X-MBX-APIKEY': binance_api_key})
  json = response.json()
  return json['listenKey']

比你应该订阅的:

代码语言:javascript
运行
复制
wss://stream.binance.com:9443/stream?streams=<listen_key>/btcbusd@bookTicker/...

期货:

代码语言:javascript
运行
复制
def get_listen_key_by_REST(binance_api_key):
  url = ' https://fapi.binance.com/fapi/v1/listenKey'
  response = requests.post(url, headers={'X-MBX-APIKEY': binance_api_key})
  json = response.json()
  return json['listenKey']

比你应该订阅的:

代码语言:javascript
运行
复制
wss://fstream.binance.com/stream?streams=<listen_key>/btcbusd@aggTrade/...

这两个服务器给您的监听键是相同的,但是如果您从错误的服务器请求它,则订阅将无法工作。

票数 2
EN

Stack Overflow用户

发布于 2022-04-12 05:54:30

用这个base_url为我工作

代码语言:javascript
运行
复制
wss://stream.binancefuture.com/ws/<listen_key>
票数 0
EN

Stack Overflow用户

发布于 2022-05-19 21:49:01

我也有同样的问题。显然,Ali代码无法工作,因为他没有插入listen键。

然而,我尝试过:

代码语言:javascript
运行
复制
socket3=f"wss://fstream-auth.binance.com/ws/L4ToFWpcpnvlGnEZhEbSQi2Gg8oLmQXSvpc2AArMybGW2ZeZkBspYjnQiOSq"

socket5=f"wss://stream.binancefuture.com/ws/L4ToFWpcpnvlGnEZhEbSQi2Gg8oLmQXSvpc2AArMybGW2ZeZkBspYjnQiOSq“

但没有效果..。我尝试过在订阅消息和没有订阅消息的情况下:

代码语言:javascript
运行
复制
    subscribe_message = {
    "method": "SUBSCRIBE",
    "params":
    [
     "ACCOUNT_UPDATE"
     ],
     "id": 1
     }

再一次一事无成。我非常希望看到我的期货帐户使用默认的 python。如果您只想看到您的期货账户二进制库正在为我工作:

代码语言:javascript
运行
复制
import asyncio
from binance.client import AsyncClient
from binance.streams import BinanceSocketManager
import api_store
async def main():
  client = await AsyncClient.create(api_store.api_key_binance, 
  api_store.api_secret_binance)
  bm = BinanceSocketManager(client)
  # start any sockets here, i.e a trade socket
  #ts = bm.user_socket()
  ts = bm.futures_user_socket()#-за фючърсният срийм или за спот стрийма

  # then start receiving messages
  async with ts as tscm:
      while True:
          res = await tscm.recv()
          print(res)
  await client.close_connection()
if __name__ == "__main__":
  loop = asyncio.get_event_loop()
  loop.run_until_complete(main())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68333058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档