if(it != _userConnMap.end()){
//用户在线,转发消息
it->second->send(js.dump());
return;
}
}
// 有可能在发送的时候,连接就给断了
// if(userstate){ //用户在线,转发消息
// }
// else{ //用户不在线,存储离线消息
// }
//存储离线消息
_offlineMsgmodel.insert(toid,js.dump());
}
直接聊就这样。
比较复杂一点的是处理离线消息。
开一个专门处理离线消息的文件,offlinemessagemodel.cpp,头文件配上。
#ifndef OFFLINEMESSAGEMODEL_H_
#define OFFLINEMESSAGEMODEL_H_
#include
#include
using namespace std;
class OfflineMessageModel{
public:
//存储用户离线消息
void insert(int user_id,string msg);
//删除用户离线消息
void remove(int userid);
//读取用户离线消息
vector query(int userid);
private:
};
#endif
offlinemessagemodel.cpp 实现ÿ