【发布时间】:2019-05-08 11:27:51
【问题描述】:
我正在尝试使用 channel-layers 通过 django-channges 中的 websocket 发送消息,但它被跳过了,甚至没有显示任何异常或错误。
我试图让它在没有异步和异步的情况下也能工作,但没有一个工作。
class stock_consumer(AsyncWebsocketConsumer):
channel_layer = get_channel_layer()
async def websocket_connect(self, event):
await self.accept()
await self.channel_layer.group_add("stock_group", self.channel_name)
u = stock_market(api_key, access_token)
u.subscribe(u.get_instrument_by_symbol('NYSE', 'AAPL'))
u.start_websocket(True)
def quote_update(message):
stock_consumer.send_message(self, message)
u.set_on_quote_update(quote_update)
async def websocket_receive(self, event):
print(event)
async def websocket_disconnect(self, message):
await self.channel_layer.group_discard('stock_grogup', self.channel_name)
await self.close()
def send_message(self, message):
print("before") //runs
***SKIPPED BLOCK START***
self.channel_layer.group_send("stock_group", {
"type": "send_message",
"text": json.dumps(message)
})
***SKIPPED BLOCK END***
print("after") //runs
【问题讨论】:
-
你试过
await self.channel_layer.group_send吗? -
@BearBrown 我试过了,但是整个函数
send_message没有运行
标签: python django python-3.x django-channels