数据在回调函数里面, 如何在receive里面将数据推送到前端?请看详情
来源:9-14 前端WebSocket API讲解
姬寅
2020-03-23
上次问题 老师给出了一个建议答案,已经明白! 但是数据不会取, 因为我获取数据是调用的SDK,SDK里面没有返回值 而是叫我们自己重写写一个 callback函数 然后接受 看图:
def callback(trade_event: ‘TradeEvent’):
print(trade_event)
async def connect(self):
subscription_client.subscribe_24h_trade_statistics_event("btcusdt", callback, error_handler)
await self.accept()
当前端与后端建立websocket的实话 会调用 connect 方法, 那么 我也就调用第三方的websocket连接,注意:
SDK ubscribe_24h_trade_statistics_event 是没有返回值的, 数据会进入 我自己重写的 callback 里面。
那么问题就是:
async def receive(self, text_data=None, bytes_data=None):
while True:
await asyncio.sleep(1)
obj = ""
await self.send_json(content=obj)
在我的前端和我的后端建立一个连接机会的时候, 我的obj 怎么才可以获取到 callback里面的值,因为callback里面的值是实时更新的…
问题就是 不会获取 callback 的值 赋值给 obj
写回答
1回答
-
Jack
2020-03-24
看得有一点懵,我想法是直接obj = callback(),因为在While True里面会每隔1s执行一次.
subscription_client.xxx为啥写在connect函数里面,应该是把“数据源→后端”,“后端→前端”的逻辑分开。
比特币的交易数据更新都很快,实现方式要改一下,中间至少用队列和redis缓存,不然交易所停机维护了你前端也变成空白了。
00
相似问题