Python中文
首页
教程
问答
标签
搜索
登录
注册
在Django通道中,线程只能启动一次
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我创建了一个简单的Django通道消费者,它应该连接到外部源,检索数据并将其发送到客户端。因此,用户打开页面>;消费者连接到外部服务并获取数据>;数据被发送到websocket</p> <p>这是我的密码:</p> <pre><code>import json from channels.generic.websocket import WebsocketConsumer, AsyncConsumer, AsyncJsonWebsocketConsumer from binance.client import Client import json from binance.websockets import BinanceSocketManager import time import asyncio client = Client('', '') trades = client.get_recent_trades(symbol='BNBBTC') bm = BinanceSocketManager(client) class EchoConsumer(AsyncJsonWebsocketConsumer): async def connect(self): await self.accept() await self.send_json('test') bm.start_trade_socket('BNBBTC', self.process_message) bm.start() def process_message(self, message): JSON1 = json.dumps(message) JSON2 = json.loads(JSON1) #define variables Rate = JSON2['p'] Quantity = JSON2['q'] Symbol = JSON2['s'] Order = JSON2['m'] asyncio.create_task(self.send_json(Rate)) print(Rate) </code></pre> <p>当我打开一页时,此代码起作用;但是,如果我尝试使用新帐户打开新窗口,它将抛出以下错误:</p> <pre><code>File "C:\Users\User\Desktop\Heroku\github\master\myapp\consumers.py", line 54, in connect bm.start() File "C:\Users\User\lib\threading.py", line 843, in start raise RuntimeError("threads can only be started once") threads can only be started once </code></pre> <p>我不熟悉频道,所以这是一个noob问题,但我如何解决这个问题?我想做的是:用户打开页面并获取数据,另一个用户打开页面并获取数据;没有办法吗?还是我只是误解了Django频道和WebSocket的工作原理</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我不是Django开发人员,但是如果我理解正确,函数<code>connect</code>被调用了不止一次,并且<code>bm.start</code>引用了最有可能在<code>bm.start_trade_socket</code>(或connect中的其他地方)中生成的相同线程。总之,当<code>bm.start</code>被调用时,一个线程被启动,当它再次被调用时,您会得到那个错误</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Python闭包能否存储和更改外部标量?
10 回答
python闭包行为怪异
9 回答
python闭包问题源代码编译器
2 回答
Python问gam
10 回答
Python问答游戏逻辑E
4 回答
Python问答程序。你能帮我找出哪里出了问题吗?谢谢
8 回答
Python问答程序问题与分数
4 回答
Python问题
9 回答
Python问题 | 在https://www.testdome.com开发的代码测试分数有bug吗
4 回答
Python问题,上载文件的名称和缩略图
3 回答
python问题,将img的相对url连接到绝对url
2 回答
Python问题,机械化机器人
5 回答
Python问题,用不同的模板发送大量电子邮件?
5 回答
Python问题,类型错误:“float对象不能解释为integer”。无法在“for”循环中返回函数的值
10 回答
Python问题:“overflowerr:Python int太大,无法转换为C long”
9 回答
Python问题:“空数据帧的绑定方法NDFrame.head”
4 回答
Python问题:AttributeError:'_io.TextIOWrapper'对象没有属性'split'
10 回答
Python问题:AttributeError:'dict'对象没有'upper'属性
9 回答
Python问题:CS圆7C循环,正方形普查
9 回答
Python问题:ODE系统的参数估计,例如系数是函数
7 回答