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

郑州 制造 网站企业做网站和开展电子商务的好处

郑州 制造 网站,企业做网站和开展电子商务的好处,小语种企业网站建设,在哪个平台建公司官网接下来,我们来实现房间的解散功能。因为在调试过程中,如果不能取消房间,就需要频繁重启程序,这非常不方便。所以,我们先来实现这个解散功能。 房间解散的流程其实很简单。当发起解散请求后,我们会向所有用…

接下来,我们来实现房间的解散功能。因为在调试过程中,如果不能取消房间,就需要频繁重启程序,这非常不方便。所以,我们先来实现这个解散功能。

房间解散的流程其实很简单。当发起解散请求后,我们会向所有用户发送一个解散推送。这个推送包含以下信息:房间内所有用户的名称、用户是否同意解散(同意则标记为“true”,不同意则标记为“false”)、用户的座次、倒计时时间、发起解散的用户信息(包括是否在线和头像)。

当所有用户都同意解散时,我们就销毁房间。接下来,我们来具体实现这个功能。我们需要找到之前接收消息的位置,在这里接收一个名为“ask”的消息,消息编号为30313。然后,我们返回一个413的消息。

在解散功能中,我们需要添加一些数据。这里会有一个名为“isAgree”的字段,表示用户是否同意解散。我们还需要判断用户是否同意解散。如果用户同意解散,我们将这个信息添加到数组中。如果不同意,就不添加。

我们还需要对所有用户的同意情况进行统计。如果同意解散的用户数量等于房间内用户总数,那么我们就解散房间。解散房间的操作可以参考之前踢人的操作,直接将所有用户踢出房间。当房间内没有用户时,我们就可以销毁房间了。

在实现过程中,我们还需要给用户发送一个推送消息,通知他们房间解散的情况。这个推送消息需要包含用户ID、头像、是否在线等信息。倒计时时间可以暂时设置为30秒。

接下来,我们来看一下具体实现的代码逻辑。我们需要在合适的位置添加锁,以避免并发问题。在接收解散请求时,我们需要判断是否已经初始化了相关的数据结构。如果没有初始化,我们需要进行初始化操作。

在统计用户同意情况时,我们需要遍历所有用户的响应,将同意解散的用户标记为“true”。如果所有用户都同意解散,我们就执行解散操作。解散操作完成后,我们需要清理相关的数据,以便下次重新创建房间。

在测试过程中,我们发现了一些问题。例如,在解散房间后,无法再次创建房间。这可能是由于我们在解散房间时没有正确清理相关的数据。我们需要检查代码,确保在解散房间后,所有的数据都被正确清理。

另外,我们在实现解散功能时,还需要注意一些细节。例如,在用户同意解散后,我们需要及时更新界面,让用户知道房间已经解散。同时,我们还需要处理用户不同意解散的情况,避免出现逻辑错误。

通过以上步骤,我们完成了房间解散功能的实现。这个功能的实现,使得我们在调试过程中更加方便,可以快速地创建和解散房间,提高了开发效率。


func (r *Room) DismissRoom(session *remote.Session, reason enums.RoomDismissReason) {if r.TryLock() {defer r.Unlock()}if r.roomDismissed {return}r.roomDismissed = true//将redis中房间信息删除掉r.RedisService.Delete(r.Id)//解散 将union当中存储的room信息 删除掉r.cancelAllScheduler()r.createHongBaoList()// 获取并存储游戏数据r.recordAllDrawResult(session)//获取并存储房间的数据if r.currentUserCount == 0 ||reason == enums.UnionOwnerDismiss ||r.RoomCreator.CreatorType == enums.UserCreatorType ||(reason == enums.UserDismiss && !r.hasFinishedOneBureau) {var users []*proto.RoomUserfor _, v := range r.users {users = append(users, v)}r.userLeaveRoomNotify(users, session)r.union.DestroyRoom(r.Id)r.destroyRoom(reason, session)r.sendData(proto.RoomDismissPushData(reason), session.GetMsg())} else {// 清除掉线玩家r.clearOfflineUser(session)if r.currentUserCount == 0 {r.union.DestroyRoom(r.Id)r.destroyRoom(reason, session)return}r.notifyUpdateAllUserInfo(session)r.destroyRoom(reason, session)r.sendData(proto.RoomDismissPushData(reason), session.GetMsg())r.resetRoom(session)}
}

文章转载自:

http://nzcJusAm.kcxtz.cn
http://UkqeabdK.kcxtz.cn
http://IzyKCgLB.kcxtz.cn
http://T14yyX4v.kcxtz.cn
http://SjFOlcDO.kcxtz.cn
http://7MbZjRdh.kcxtz.cn
http://sJ7uUm8S.kcxtz.cn
http://c2eYcINN.kcxtz.cn
http://shNOvJHD.kcxtz.cn
http://UEIcjozH.kcxtz.cn
http://13TvxB70.kcxtz.cn
http://a4BMJblE.kcxtz.cn
http://L0tcT9Iv.kcxtz.cn
http://PHjIPyM0.kcxtz.cn
http://UeEqKUiD.kcxtz.cn
http://MNFkXejr.kcxtz.cn
http://hOF6qKDJ.kcxtz.cn
http://IQmvSSZ4.kcxtz.cn
http://Un5h1eru.kcxtz.cn
http://79U8WGgN.kcxtz.cn
http://711YMRLn.kcxtz.cn
http://t2q6v7AO.kcxtz.cn
http://jrzEAsLp.kcxtz.cn
http://5yTotVxA.kcxtz.cn
http://n02Tx4DA.kcxtz.cn
http://gTCyVjBN.kcxtz.cn
http://oe1oN2fB.kcxtz.cn
http://3Q6VKNjE.kcxtz.cn
http://9jaCnEyo.kcxtz.cn
http://UzdKupYb.kcxtz.cn
http://www.dtcms.com/wzjs/611719.html

相关文章:

  • 网站建设到上线步骤装修软件排行榜前十名
  • 衡水稳定的网络建站wordpress反应
  • 黔南州建设局门户网站北京最大公司排名
  • 苏州网站制作聚尚网络四川酒店网站建设
  • ups国际快递网站建设设计店面装修
  • 如何做京东优惠券网站怎样做吧网站排名做上去
  • 男女做爰网站建设官网入口
  • 网站新建设请示微信平台开发
  • 网站开发安装环境广东网站备案审核时间
  • 恐怖音乐怎么做的视频网站湖南省郴州市汝城县
  • 黑龙江省建设安全网站建筑工程网络数据安全管理系统
  • 档案室建设网站建筑木模板厂家
  • 外国人做那个视频网站吗广州php网站建设
  • 安徽服饰网站建设做投票网站
  • 药品在网站上做标签有哪些分类阳江本地网络平台
  • 北京手机网站建设报价wordpress安卓
  • 做品牌网站的明年做啥网站能致富
  • 潜江做网站的公司有哪些网站的备案
  • 爱网站搭建网页网站导读怎么做
  • 集团微网站建设济南快速排名
  • 经典企业网站做爰全过程免费费网站
  • 物业公司网站建设方案详情页设计模板网站
  • 上海 网站制作贵阳制作网站
  • 文明网站的建设与管理的思考西安有什么好玩的游乐园
  • 瑞安网站设计seo是什么品牌衣服
  • 如何利用个人nas做网站vps建wordpress
  • 招聘网站建设销售做马来西亚生意的网站
  • 农家乐网站建设腾讯云域名交易
  • 企业门户网站需求文档一个网站的优势有哪些
  • 做汽配的都上什么网站wordpress时间函数