当前位置: 首页 > news >正文

公众号电影网站怎么做微信怎么开店

公众号电影网站怎么做,微信怎么开店,陵水网站建设装修设计公司,厦门网络公司的网络平台接着[集群聊天服务器]----(六)业务模块之用户注册、登录、退出以及客户端异常退出函数中对于业务模块的用户注册、登录、退出以及客户端异常退出函数的剖析#xff0c;现在我们对点对点聊天以及添加好友的实现进行剖析。 点对点聊天 当客户端输入msgidONE_CHAT_MSG时#x…接着[集群聊天服务器]----(六)业务模块之用户注册、登录、退出以及客户端异常退出函数中对于业务模块的用户注册、登录、退出以及客户端异常退出函数的剖析现在我们对点对点聊天以及添加好友的实现进行剖析。 点对点聊天 当客户端输入msgidONE_CHAT_MSG时ChatService::ChatService()中会回调ChatService::oneChat()函数进行处理 void ChatService::oneChat(const TcpConnectionPtr conn, json js, Timestamp time) {int toid js[toid].getint(); // 对方的id{//在一台主机上lock_guardmutex lock(_connMutex); // 线程安全auto it _userConnMap.find(toid);if (it ! _userConnMap.end()){// toid 在线 转发消息 服务器主动推送消息给toid用户it-second-send(js.dump());return;}}// 查询toid是否在线User user _userModel.query(toid);//在另一台电脑上if (user.getState() online){_redis.publish(toid, js.dump());return;}// toid 不在线 存储离线消息_offlineMsgModel.insert(toid, js.dump()); }通过 JSON 对象反序列结果寻找toid对应的值找到用户想要对话的用户并在_userConnMap中进行查找是否有此对象如果用户在一台主机并且处于在线状态就发送想要发送的消息如果不在同一台主机根据toid调用_userModel在user表中进行查看对方是否在线如果在线就通过redis发布消息不在线就存储其离线消息 添加好友 当客户端输入msgidADD_FRIEND_MSG时ChatService::ChatService()中会回调ChatService::addFriend()函数进行处理 void ChatService::addFriend(const TcpConnectionPtr conn, json js, Timestamp time) {int userid js[id].getint();int friendid js[friendid].getint();// 存储好友信息_friendModel.insert(userid, friendid); }根据客户端获取的用户id以及想要添加的好友id在好友表中进行存储 好友消息FriendModel //添加好友关系 void insert(int userid, int friendid);//返回用户好友列表 friendidfriendname id vectorUser query(int userid);添加好友关系 void FriendModel::insert(int userid, int friendid) {char sql[1024] {0};sprintf(sql, insert into friend values(%d,%d), userid, friendid);MySQL mysql;// 连接数据库if (mysql.connect()){// 更新数据库语句mysql.update(sql);} }组装sql语句根据用户id以及好友id userid, friendid在friend表中进行更改 返回用户好友列表 vectorUser FriendModel::query(int userid) {char sql[1024] {0};sprintf(sql, select a.id,a.name,a.state from user a inner join friend b on b.friendid a.id where b.userid%d, userid);vectorUser vec;MySQL mysql;// 连接数据库if (mysql.connect()){MYSQL_RES *res mysql.query(sql); if (res ! nullptr){MYSQL_ROW row ;while((row mysql_fetch_row(res)) ! nullptr) {User user;user.setId(atoi(row[0]));user.setName(row[1]);user.setState(row[2]);vec.push_back(user);}mysql_free_result(res);return vec;}}return vec;}组装sql语句根据userid在user 和 friend表进行联合查询好友的id name state根据sql语句调用MySQL::query()语句进行查找好友然后调用mysql_fetch_row()函数查找对应的行row是MYSQL_ROW类型可以根据下标找到对应的值并把id name state放入vec中返回注意释放资源 离线消息类OfflineMsgModel //存储用户的离线消息 void insert(int userid, string msg);//删除用户的离线消息 void remove(int userid);//查询用户的离线消息 vectorstring query(int userid);存储用户的离线消息 void OfflineMsgModel::insert(int userid, string msg) {char sql[1024] {0};sprintf(sql, insert into offlinemessage values(%d,%s), userid, msg.c_str());MySQL mysql;// 连接数据库if (mysql.connect()){// 更新数据库语句mysql.update(sql);} } 组装sql语句根据userid像offlinemessage表中添加离线消息msg连接数据库并进行更新 删除用户的离线消息 在用户登录以后需要显示离线消息并删除用户的离线消息表 void OfflineMsgModel::remove(int userid) {char sql[1024] {0};sprintf(sql, delete from offlinemessage where userid%d, userid);MySQL mysql;// 连接数据库if (mysql.connect()){// 更新数据库语句mysql.update(sql);} }组装sql语句根据userid在offlinemessage表中删除相关消息连接数据库并进行更新 查询用户的离线消息 vectorstring OfflineMsgModel::query(int userid) {char sql[1024] {0};sprintf(sql, select message from offlinemessage where userid %d, userid);vectorstring vec;MySQL mysql;// 连接数据库if (mysql.connect()){// 更新数据库语句MYSQL_RES *res mysql.query(sql); // 指针 内部动态内存开辟 需要释放资源if (res ! nullptr){// 获取行 根据主键查//把userid用户的所有离线消息放入vec中返回MYSQL_ROW row ;while((row mysql_fetch_row(res)) ! nullptr) {vec.push_back(row[0]);}mysql_free_result(res);return vec;}}return vec; }组装sql语句根据userid在offlinemessage表查找离线消息根据sql语句调用MySQL::query()语句进行查找好友然后调用mysql_fetch_row()函数查找对应的行row是MYSQL_ROW类型可以根据下标找到对应的值并把离线消息放入vec中返回注意释放资源 好了~ 关于业务模块的一对一聊天、添加好友函数、好友类以及离线消息类的剖析就到此结束了下一节我们将对群组进行剖析下一节见~~
http://www.hkea.cn/news/14356281/

相关文章:

  • 投资建设集团网站万网云虚拟主机上传网站吗
  • 做网站分成网站开发工单
  • 电子商务网站的建设的意义6生肖竞猜网站建设
  • 适合用dedecms做的网站网站建设分金手指科捷13
  • 青岛大学网站建设昆明企业自助建站
  • 网页设计与制作建立站点实验报告咖啡网站开发
  • 南宁市建设厅官方网站wordpress多主题模式
  • 比较好的h5网站实力网站建设电话
  • 自己做的网站怎么接数据库wordpress怎么更换站点
  • 网站显示已备案中国建设协会网站首页
  • 网站设计师是什么wordpress 二次开教程
  • 网站快速备案公司wordpress建站平台
  • 做网站 营业执照梅州建设工程交易中心网站
  • 长沙网站建设王道下拉棒wordpress 淘宝客 主题
  • 在淘宝介绍里边怎么做网站链接做网站如何写代码
  • 巧家县城乡建设局网站漯河网站制作
  • 魔方 网站建设 有限公司苏州做网版的公司
  • 汤阴有没有做网站的公司wordpress多张页面左右滑动
  • 扬州市住房和建设局网站乐陵森林面积
  • 郑州做网站建设公司哪家好网站建设怎么翻译
  • 单一产品销售网站建设模板网站建设网站建设
  • 网站建设 银川修改wordpress的样式
  • 机械产品做那几个网站好在pc端预览手机网站
  • 网站后台更新图片手机官网
  • 关于旅游网站开发的研究方法网站 制作水印
  • 培训机构网站建设推广阿里云一键建站网站
  • 做网站买什么服务器 便宜酒店网站开发合同范本
  • 做的网站怎么上传到网上展示类网站模板js
  • 电子商务网站建设及推广方案论文佛山网站排名推广
  • 免费flash素材网站正规的网页制作