1. 发送消息
1.1 实现逻辑分析
- 发送消息的具体实现,通过输入框右下角的发送按钮
- 输入框中发送的内容,通过网络传输给服务器
- 客户端,发送消息成功后,消息展示区中要显示刚刚发送出去的消息
1.2 具体实现
消息输入区域设置信号槽处理函数,并在构造函数中进行调用

发送文本消息实现
- 考虑会话是否选中
- 考虑文本输入内容是否为空

- 测试




设计客户端发送消息(通过netClient),实现不同消息类型的发送
- 根据消息的不同类型,填充消息内容,比对proto文件使用
message StringMessageInfo {
string content = 1;//文字聊天内容
}
message ImageMessageInfo {
optional string file_id = 1;//图片文件id,客户端发送的时候不用设置,由transmit服务器进行设置后交给storage的时候设置
optional bytes image_content = 2;//图片数据,在ES中存储消息的时候只要id不要文件数据, 服务端转发的时候需要原样转发
}
message FileMessageInfo {
optional string file_id = 1;//文件id,客户端发送的时候不用设置
int64 file_size = 2;//文件大小
string file_name = 3;//文件名称
optional bytes file_contents = 4;//文件数据,在ES中存储消息的时候只要id和元信息,不要文件数据, 服务端转发的时候也不需要填充
}
message SpeechMessageInfo {
optional string file_id = 1;//语音文件id,客户端发送的时候不用设置
optional bytes file_contents = 2;//文件数据,在ES中存储消息的时候只要id不要文件数据, 服务端转发的时候也不需要填充
}
message MessageContent {
MessageType message_type = 1; //消息类型
oneof msg_content {
StringMessageInfo string_message = 2;//文字消息
FileMessageInfo file_message = 3;//文件消息
SpeechMessageInfo speech_message = 4;//语音消息
ImageMessageInfo image_message = 5;//图片消息
};

DataCenter中实现addMessage()方法



3074

被折叠的 条评论
为什么被折叠?



