在Tornad中保存websocket连接列表

2024-10-01 11:24:43 发布

您现在位置:Python中文网/ 问答频道 /正文

已将多个websocket处理程序配置为在WebSocki存储中保留多个对象的连接。但是我有多个处理程序-每个WS-URI(端点)一个。假设我的项目有三个端点-A,B,C

ws://www.example.com/A
ws://www.example.com/B
ws://www.example.com/C

为了处理这些连接,我有三个处理程序。所以我很困惑在哪里创建一个列表来存储稍后要使用的处理程序对象。在

在添加列表之前,我的代码是--

^{pr2}$

那么我在哪里创建这个列表并确保它对所有创建的对象都可见呢?我对python也不熟悉,所以有点难以理解。在

我还意识到我可能只使用一个URI(端点)并将多个命令作为消息本身的一部分发送。但我不想把WebSocket变成二进制协议。考虑到我们有uri,我应该使用它们。在

谢谢你的帮助。在


Tags: 项目对象代码com处理程序列表wsexample
1条回答
网友
1楼 · 发布于 2024-10-01 11:24:43

这取决于您想用处理程序执行什么操作,但您可以通过以下三个列表轻松地将它们设置为可访问的:

# Global variables.
a_handlers = []
b_handlers = []
c_handlers = []

WSHandlerA.open()a_handlers.append(self)WSHandlerB.open()做{},依此类推。WSHandlerA.on_close()a_handlers.remove(self)。在

如果要对所有A处理程序执行某些操作:

^{pr2}$

要对所有处理程序执行某些操作,请执行以下操作:

for handler in a_handlers + b_handlers + c_handlers:
    # do something....
    pass

顺便说一句,如果使用Pythonset()而不是每组处理程序的列表,效果会更好一些。对于集合而不是列表,请使用add和{},而不是{}和{}。在

相关问题 更多 >