if isinstance(message[1], list): # 消息类型为列表 data = json.dumps(message[1]) for i in range(len(users)): # 向所有用户发送在线列表 users[i][0].send(data.encode()) if isinstance(message[1], dict): # 消息类型为字典类型, 求出所有用户的好友列表并发送给客户端
时间: 2024-01-14 09:02:37 浏览: 58
在代码中,对于消息类型为列表的情况,先使用json.dumps()函数将列表编码为字符串,然后向所有用户发送在线列表。而对于消息类型为字典的情况,则需要求出所有用户的好友列表,然后将好友列表编码为字符串,最后发送给客户端。具体实现方式如下:
```python
if isinstance(message[1], list): # 消息类型为列表
data = json.dumps(message[1])
for i in range(len(users)): # 向所有用户发送在线列表
users[i][0].send(data.encode())
elif isinstance(message[1], dict): # 消息类型为字典
friend_list_all = {}
for i in range(len(users)): # 遍历所有用户
user_id = users[i][1] # 获取用户ID
friend_list = get_friend_list(user_id) # 获取用户好友列表
friend_list_all[user_id] = friend_list # 将好友列表加入字典中
data = json.dumps(friend_list_all) # 将所有用户的好友列表编码为字符串
conn.send(data.encode()) # 发送给客户端
```
其中,get_friend_list()是一个自定义的函数,用于获取指定用户的好友列表。用户ID可以从users列表中获取,例如:
```python
user_id = users[i][1]
```
阅读全文