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

桂林市网站设计wordpress宗旨是什么

桂林市网站设计,wordpress宗旨是什么,如何帮网站,html教程pdf下载目录 登录状态业务层代码数据模型层代码记录用户的连接信息以及线程安全问题客户端异常退出业务 登录状态 登录且状态变为online 业务层代码 #include chatservice.hpp #include public.hpp #include string #include muduo/base/Loggi… 目录 登录状态业务层代码数据模型层代码记录用户的连接信息以及线程安全问题客户端异常退出业务 登录状态 登录且状态变为online 业务层代码 #include chatservice.hpp #include public.hpp #include string #include muduo/base/Logging.h #include muduo/net/TcpServer.h #include muduo/net/EventLoop.h using namespace muduo; using namespace std;//获取单例对象的接口函数 ChatService* ChatService::instance() {static ChatService service;return service; }//注册消息以及对应的Handler回调操作 ChatService::ChatService() {//要想实现回调就需要先进行注册通过绑定对象_msgHandlerMap.insert({LOGIN_MSG,std::bind(ChatService::login,this,_1,_2,_3)});_msgHandlerMap.insert({REG_MSG,std::bind(ChatService::reg,this,_1,_2,_3)});}//获取消息对应的处理器 MsgHandler ChatService::getHandler(int msgid) {//记录错误日志,msgid没有对应的事件处理回调auto it_msgHandlerMap.find(msgid);if(it_msgHandlerMap.end()){//返回一个默认的处理器空操作return [](auto a,auto b,auto c){LOG_ERRORmsgid:msgidcan not find handler!;};}else{return _msgHandlerMap[msgid];}}//处理登录业务 void ChatService::login(const TcpConnectionPtr conn,json js,Timestamp) {int idjs[id].getint();string pwdjs[password];User user_userModel.query(id);if(user.getId()iduser.getPwd()pwd){if(user.getState()online){//该用户已经登录不允许重复登录json response;response[msgid]LOGIN_MSG_ACK;response[errno]2;response[errmsg]该账号已经登录请重新输入新账号;conn-send(response.dump());}else{//登录成功更新用户状态信息 state offlineonlineuser.setState(online);_userModel.updateState(user);json response;response[msgid]LOGIN_MSG_ACK;response[errno]0;response[id]user.getId();response[name]user.getName();conn-send(response.dump());}}else{//该用户不存在登录失败json response;response[msgid]LOGIN_MSG_ACK;response[errno]1;response[errmsg]用户名或者密码错误;conn-send(response.dump());} } //处理注册业务 void ChatService::reg(const TcpConnectionPtr conn,json js,Timestamp) {string namejs[name];string pwdjs[password];User user;user.setName(name);user.setPwd(pwd);bool state_userModel.insert(user);if(state){//注册成功json response;response[msgid]REG_MSG_ACK;response[errno]0;response[id]user.getId();conn-send(response.dump());}else{//注册失败json response;response[msgid]REG_MSG_ACK;response[errno]1;conn-send(response.dump());} } 数据模型层代码 //更新用户的状态信息 //根据用户号码查询用户信息 bool UserModel::updateState(User user) {//组装sql语句char sql[1024]{0};sprintf(sql,update user set state %s where id%d,user.getState().c_str(),user.getId());MySQL mysql;if(mysql.connect()) {if(mysql.update(sql)){return true;}}}但是问题就是一登录成功就断开连接了 记录用户的连接信息以及线程安全问题 所以需要保存连接信息 这个表会被多线程访问所以要考虑它的线程安全问题 上互斥锁 CSTL里面并没有考虑线程安全问题 数据库的增删改查的并发操作是由MYSQL来保证的不需要担心去上锁啥的。而线程安全需要保证 大括号表示作用域 客户端异常退出业务 在没有任何响应的情况下连接突然断开了。比如网络连接问题 如果异常退出并没有发送合法的json。用户状态如何 这个业务完成两件事一个是把存储用户通信连接的哈希表删除该用户的键值对2、将用户在数据库里的状态信息由online变成offline。 当出了大括号之后锁就自动释放
http://www.hkea.cn/news/14526766/

相关文章:

  • wordpress网站不显示系列宁波专业网站搭建地址
  • 医药类网站建设评价手机端网站建设哪家好
  • 新东方广州门户网站网站线下推广方式
  • 中国建设银行的网站首页网站维护需要关闭网站么
  • 宁波网站推广优化中企动力科技股份有限公司成都分公司
  • 北京网站建设公司网络营销外包网络建站报价重庆网站建设哪个好
  • 关键词优化软件排行seo技术培训教程
  • 合肥市公司网站建设网站后台权限管理
  • 南京建设工程质量监督站网站阳江市房产网
  • 网站官网现在建设的网站有什么劣势
  • 建设网站制作公司淘宝客网站搭建
  • 宣武富阳网站建设网站建设网络宣传
  • 网站建设执行力网站模块图
  • php网站怎么样鄂尔多斯市住房和城乡建设厅网站
  • 怎么做阿里巴巴国际网站首页wordpress怎么使用固定连接
  • 公司网站设计的公司雅布设计有多牛
  • 滨州聊城网站建设怎样开发网站建设
  • 广州网站推广模板怎么做网站写书
  • 湖南省建设局官方网站百度首页的ip地址
  • 百度小说百度seo快速排名优化
  • 无锡网站制作哪里有phpnow搭建本地网站
  • 陕西做网站公司有哪些q版设计网站
  • 找合伙人做红木家具网站我的世界做壁纸的网站
  • 灰色网站设计网站可以增加关键词吗
  • 做企业网站设计与实现怎么做门户网站
  • 手机免费建站系统福建设计院网站
  • 珠海正规网站制作哪家好网站开发技术公司
  • 招聘网站制作网站建设公司行情
  • 设计师搜图网站可以做问卷的网站有哪些
  • 融水县建设局网站为什么做电影网站没有流量吗