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): # 消息类型为字典 # friend_list_all = {} # 存放所有用户的好友 for i in range(len(users)): # 遍历所有用户 username = users[i][1] # 获取用户名字 friend_list = Userfriend(username) # 获取用户好友列表 data = json.dumps(friend_list) users[i][0].send(data.encode()) 用python代码编写,将用户列表和好友列表分别增添消息头以区分两种消息类型并发送到客户端
时间: 2024-01-14 17:02:18 浏览: 135
这是一个简单的示例代码,用于将用户列表和好友列表分别增添消息头以区分两种消息类型,并发送到客户端。假设用户列表和好友列表分别存储在两个列表中,分别为 `user_list` 和 `friend_list`,则代码如下:
```python
import json
# 构造用户列表消息
user_msg = {
"type": "user_list",
"data": user_list
}
user_data = json.dumps(user_msg).encode()
# 构造好友列表消息
friend_msg = {
"type": "friend_list",
"data": friend_list
}
friend_data = json.dumps(friend_msg).encode()
# 将消息发送给所有在线用户
for user in online_users:
user_socket = user[0] # 用户的socket对象
user_name = user[1] # 用户名
if user_name in friend_list: # 如果该用户在好友列表中,发送好友列表消息
user_socket.send(friend_data)
else: # 否则发送用户列表消息
user_socket.send(user_data)
```
在上面的代码中,我们使用了 JSON 格式来表示消息内容,并使用 `type` 字段来区分两种不同的消息类型。在发送消息时,我们首先将消息字符串转为字节流,然后通过用户的 socket 对象发送给客户端。对于不同的用户,我们根据其是否在好友列表中来决定发送哪种类型的消息。
阅读全文