同步操作将从 无趣的人民艺术家/逐梦通讯服务端 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
1.main函数: (1)连接数据库,确认3张数据表都存在,不存在则创建 (2)连接数据库,载入已存在用户用户信息 (3)初始化EventLoop线程池 (4)初始化聊天服务器IMServer,指定主线程事件循环 (5)开启主线程事件循环 2.初始化聊天服务器IMServer::init(): (1)初始化TcpServer对象,设置建立连接执行的回调函数 (2)TcpServer->start()启动侦听 3.连接到来处理逻辑IMServer::OnConnection (1)TcpServer::m_baseUserId自增? (2)新建一个ClientSession对象,设置该连接的消息到来执行的回调函数 (3)IMServer为每一新连接维护一个ClientSession智能指针,保存到map中 4.好友操作逻辑 (1)删除好友: (2)A给B发送添加好友请求: A客户端发送--->{"userid": 9(B id), "type": 1}--->服务端收到,构造数据包--->{"userid": 9(A id), "type": 2, "username": "xxx"(A username)}--->通过B session发送到B客户端 (3)B收到好友请求,接受或拒绝: B客户端发送--->{"userid": 9(A id), "type": 3, "username": "xxx"(A username), "accept": 1(1同意,0拒绝)}--->服务端收到--->插入到数据库--->更新缓存用户信息--->构造两个数据包--->1.回应B客户端{"userid": 9(A id), "type": 3, "username": "xxx"(A id), "accept": 1(1同意,0拒绝)}--->2.通过A session回应A客户端{"userid": 9(B id), "type": 3, "username": "xxx"(B id), "accept": 1(1同意,0拒绝)}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。