我使用以 python 编程语言提供的 WAMP WS 创建了一个 websocket 服务器。
我有一个要求,我一次使用 WAMP WS 服务器订阅大约 500 个客户端。
但是当我发布数据时,我只会根据某些条件将其发送给单个客户。我知道循环遍历客户端列表并找出符合条件的客户端然后将数据发送到相应的客户端非常简单。
我想知道,是否有任何其他方法不使用循环,因为如果所需的客户端位于最后一个位置,使用循环将导致大量开销。
我使用以 python 编程语言提供的 WAMP WS 创建了一个 websocket 服务器。
我有一个要求,我一次使用 WAMP WS 服务器订阅大约 500 个客户端。
但是当我发布数据时,我只会根据某些条件将其发送给单个客户。我知道循环遍历客户端列表并找出符合条件的客户端然后将数据发送到相应的客户端非常简单。
我想知道,是否有任何其他方法不使用循环,因为如果所需的客户端位于最后一个位置,使用循环将导致大量开销。
大概您遍历每个客户的资格数据并根据该数据做出某种决定。因此,资格数据索引将为您提供近乎即时的访问权限。因此,使用伪代码,例如:
client_array = []
client_index = {}
client_array.add(new client)
if not new client.eligibility_data in client_index:
client_index[new client.eligibility_data] = []
client_index[new client.eligibility_data].add(new client)
我不知道资格数据是什么,但是,说它是客户的重量。如果您想向重量在 200 到 205 点之间的每个人发送消息,您可以在 client_index[200] 到 [205] 中找到这些客户端。
如果无法事先确定条件,那么您可能需要一个可以处理任意查询的数据库来确定客户端目标。