如何通过在 Python 中使用 wss 从 blockchain.com 获得响应?
How to get response from blockchain.com by using wss in Python?
我尝试连接到 blockchain.com websocket by using this API. I use websockets library for Python。当我使用交互式客户端方法连接时,我成功了。但是当我尝试使用我的 Python 脚本进行连接时,服务器套接字没有任何响应。这是我的脚本:
import asyncio
import websockets
async def main():
async with websockets.connect("wss://ws.blockchain.info/inv") as client:
print(await client.recv())
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
这是我在使用交互式客户端时在终端中看到的内容,我希望在 运行 我的脚本时看到它:
Connected to wss://ws.blockchain.info/inv.
>
正如@SteffenUllrich 在评论中提到的,此文本由 interactive client
显示 - 它不是从服务器收到的消息 - 您必须使用自己的 print("Connected to wss://ws.blockchain.info/inv.")
来显示它。
如果你想从服务器 recv()
获取一些东西,那么首先你必须 send()
命令到服务器。
import asyncio
import websockets
async def main():
async with websockets.connect("wss://ws.blockchain.info/inv") as client:
print("[main] Connected to wss://ws.blockchain.info/inv" )
cmd = '{"op":"ping"}'
print('[main] Send:', cmd)
await client.send(cmd)
print('[main] Recv:', await client.recv())
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
结果:
[main] Connected to wss://ws.blockchain.info/inv
[main] Send: {"op":"ping"}
[main] Recv: {"op":"pong"}
我尝试连接到 blockchain.com websocket by using this API. I use websockets library for Python。当我使用交互式客户端方法连接时,我成功了。但是当我尝试使用我的 Python 脚本进行连接时,服务器套接字没有任何响应。这是我的脚本:
import asyncio
import websockets
async def main():
async with websockets.connect("wss://ws.blockchain.info/inv") as client:
print(await client.recv())
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
这是我在使用交互式客户端时在终端中看到的内容,我希望在 运行 我的脚本时看到它:
Connected to wss://ws.blockchain.info/inv.
>
正如@SteffenUllrich 在评论中提到的,此文本由 interactive client
显示 - 它不是从服务器收到的消息 - 您必须使用自己的 print("Connected to wss://ws.blockchain.info/inv.")
来显示它。
如果你想从服务器 recv()
获取一些东西,那么首先你必须 send()
命令到服务器。
import asyncio
import websockets
async def main():
async with websockets.connect("wss://ws.blockchain.info/inv") as client:
print("[main] Connected to wss://ws.blockchain.info/inv" )
cmd = '{"op":"ping"}'
print('[main] Send:', cmd)
await client.send(cmd)
print('[main] Recv:', await client.recv())
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
结果:
[main] Connected to wss://ws.blockchain.info/inv
[main] Send: {"op":"ping"}
[main] Recv: {"op":"pong"}