00:00
好了,另外咱们接下来来看一下我们收发消息这一个模块,也就是客文所说的就这个呗,啊,我现在啊能够输入东西的,我一回车,这不相当于我作为引兵这个用户,我发了一条消息,那作为其他的在这个群组里面的,也就在这个直播间的其他用户,杨左呀,铁锤呀,钢蛋啊,虽然他们没来哈,但是他们就应该收到这一个消息,所以我称之为咱们这一集的内容啊,为咱们收发消息这一个模块啊,在收发消息这个模块中啊,我准备啊对于引铺的框架,提高一下用户体验,你不能上来就能发消息,所以我可以在这里呀设置这样一个文字啊,就是我们please holder,我也不想写死,你想列外,我们这个please holder,在一开始的时候,我们这个TLSSDK这一块,它是需要初始化的,初始化完成之后,咱们才能进行收消息这里,所以我就这么想的哈,这个我想显示两句话。
01:00
第一句话就是初始化中请等待,请稍等,等我们TLSDK初始化完成之后,我就可以在这里显示,我想说我想问主播哎这样一些词儿了啊,所以我在这里肯定是需要一个什么呀,三目的一个判断的,什么时候TLSDK初装完成之后给我传过来,我就显,我想问主播什么时候啊,这个一开始的时候应该默认这是个false,我就显示初始化,请稍等,所以我这个place holder准备啊这么来去用它,但列位咱们这个place holder里面这个状态值,它肯定不能在bottom里面自己控制,因为我room bottom只是啊,赋予我们room直播间组件的一个子组件而已,所有的啊实权啊,所有的大权应该掌握在我们LIVE5这一个组件,就咱们的直播间组件这里,所以客们认为啊,咱们应该在直播间这个组件中,跟我一起来设置这样一个状态。
02:00
这个状态的名字的话,就是咱们的这个名字来is team啊,这个team就是咱们的实时通讯啊,然后的话,Ready默认值的话呢,应该是一个什么呀,False的一个值,然后直到什么时候我给它改成初的列位,大家们也知道哈,在咱们SDK初始化成功列位你看看在这里来在这里。SDK ready的时候,初始化成功的时候,当时啊,我设置了不少状态,什么group infer啊,User INF in,哎,就带水的,再把它给设置成一个初,表示我们此时啊,这个东西初始化已经成功了,那这样的话,我自己玩的话呢,没啥意思,是不是我就要把这个值给我的孩子传过去,因为我想通过这个值来控制住我这个room bottom里面那个影的框,一会儿显示这个place holder,一会儿显示那个place holder,所以列位可以想象一下,一开始是false传进去了,等将来SDK初始化成功了,咱们给它设置成触,所以把这个触又给这个room bottom传进去了,而我的room bottom组件,哎,它就是一个小傀儡,它在这里,哎,附件让他怎么玩他就怎么玩,所以他就在这接收这个属性,对不对,然后我们就可以在我们的room wxm2中,咱们在这里。
03:22
的话呢,设置一个三目问号,如果是真的情况下,就说明已经初始化好了,我就直接写我想问主播哎什么什么什么吧,哎这样一个三个点,如果一开始是false的情况下的话呢,咱们呀就显示这句话就是初始画珠,哎初始画中啊请稍等哎这样一句话,另外你说好不好呀啊,当然你可以自己再来把这个词啊给措词一下哈,请稍等,OK保存了之后来咱们重新的编译一遍来感受一下哈,一进来的时候,哎呀这个小图片好像始终有点问题哈,没事啊,我们等一下,OK,点击羊组进来之后两位可以看怎么这么快吗?啊啪的一下就给我改成这个,大家可以关注一下底部这一块,一进来之后初始化请稍等,很快哈,确实一眨眼的话呢,就已经变成了我们这个初始化了啊,所以在这里能看到这个词的一个改变啊,你看闪了一下,一开始是初始化。
04:22
马上就变成了,我想问主播了,对不对,哎,这样的话这个功能就完事儿了,好,这是这一个,那接下来咱们就可以继续了,在我们room包这个组件里面来回到这里咱们,诶,不是啊,就是还得了哈,Room bottom这个组件,咱们把其他的给这个什么啊,关一关,咱们打开room bottom特在这里呢,首先我得怎么样把引步的书目或者是拿到了,拿到值之后,我才能说发消息给别人啊,所以我们在这个主页中,至少现在入包特们自己里面能拿到我们输入框的value值啊,然后咱们再传给我们谁呀,你也知道咱们直播间组件才具有什么收发消息的功能,因为所有的啊,咱们的这些业务都写在直播间,而我们的room bottom只是一个帮咱们分担任务的啊,分担功能的一个room bottom啊,所以我们在这里写完了这个值得到之后,咱们还要子传复啊,再传给我们的这个副组件,所以大家会发现在这种组件化开发中啊。
05:22
我们这种父子通信应该用的特别频繁,那有人不嫌麻烦啊,完全摒弃的啊,组建这种特性哈,就是把所有代码写在一起,乱是乱点,但是没有通信的,你要这么写的话呢,确实不错,但完全已经抛弃的组件的开发灵魂了啊好了,咱们怎样来获取这个输入框的值,是不是获取这个输入框者值,咱们只需要绑定一个时件就行,咱们不是每次实时获取,另外你要注意哈,你没必要实时获取,咱们只需要按下回车键那一刻,或者按一下你手机小键盘弹起的那个键啊,那一个回车就可以了。所以在这里的话,就要确定这么几个值,一个叫b confirm,这就是咱们摁一下回车键之后呢,这个回调函数列位,而且在这里弹起了小键盘之后,你想让那个小键盘后面显示什么文字,你可以在这里改成这个send send就变成了发送这个文字,可能对于小程序组件不熟悉的人就会觉得很懵啊,可能给你点开看一眼哈。点开这个组。
06:22
但诶在这里的话,点开这一个文档,咱们可以看一眼这个组件中的这个属性,就是我们在诶这个属性的在前面这一块,首先棒的confirm的话,点击完成按钮时候触发啊,然后再就是课文所说的confirm typeb这里来了,在这里哈,设置键盘右下角按钮的文字啊,仅在type等于text的生效啊,默认值有type等于text嘛,然后你会发现四值就变成了右下角为发送search值就是搜索,所以我认为对于我们这个的话,呃,在手机上运行的时候,点一下小键盘弹起来设置成四最好了,因为就表示要发送这一个消息,所以客户在这设置的是send,而B的confirm,这个就是咱们真正点完那个发送按钮所走的那一个回调函数,另外就在这个回调函数中,你不得获取到我们的输入框的Y60呢,所以可就在这个点GS文件中。
07:22
哎,咱们就写的method的方法之后,咱们来拿到我们输入框的一个value值,这个value值列外怎么拿呀,是不是我们EVT.target.value呀,是EVT.target.value还是咱们的EVT.data.value呀,DTVT.data来跟客户先测一下吧,咱们在这里测试一下啊,这个重新编译一下哈,这块好像有点呃热重载导致这块有点小问题啊,没关系,我们在编译完了之后,来在这里看科面输入东西了哈,输入完一回车之后是吧,点Y6拿到我们的这个值,拿到这个值之后我就手了吧,因为我拿到这个值我还要清空一下这个输入框的内容吧,对吧,一回车之后拿到值的还要清空一下,因为咱们每次发完消息之后,之前的那个消息应该清掉啊,所以这一块也是在自主件中直接就做完了,所以咱们就一起来做一下,那这块也好做,是我只需要在这个位置的话,咱们设置好一个什么VALUE6就可以了啊,双向控制呗,VALUE6出。
08:22
比如这个空字符串,等咱们输入完了一回车之后,我再给它改成空字符串就可以了,所以我们在这里初始这一块data中,咱们有一个小的value空字符串,每次获取到这个值之后,也就在这里咱们需要一个子传复传给我的父组件,然后在下面这一块的话呢,这就是我们的清空,哎,清我们的value值,哎,就这么一个体验,这次点set data,咱们把这个value设置成空的就可以了,那这样的话运行来测试一下,后面输入东西一回车,哎呀,还得重新编译呀。嗯,这里的话呢,每次得重新编译一下,要不然呢,GS没有生效啊,在这重载这块再一回车是不是这种感觉呀?哎,我们在这里一回车之后,这边就清空了,那边的话就来一个子传副发给你的副组件,你副组件除了一个1234567等的,好着急啥时候给我啊,所以咱们在这里来列外,咱们不去墨迹了哈,因为这种子传父传子咱们应该很熟练了,我应该在这里绑定一个什么呀,我随便写一个绑定一个send啊这样一个方法,然后在这里hand到这一个send,然后注意这个棒呢是固定的,后面这个咱们自定义的一个事件,而这个HANDLE4呢,在咱们副总件中科已经提前的把这个定义出来了,就放在咱们的最后面啊,全部放在最后面,这个是咱们的这个回车触发啊,回车发送消息,发送消息,所以我们在这里去写哈刀这一个什么呀,S将来。
09:59
哈,如果我能在这里得到这个消息的话,我是不是就成功了呀,所以我的在这里提前写好了,那接下来咱们就在这个自件中,只需要利用一个z.trigger event,咱们触发那一个什么send send,咱们把这个点点value,咱们就给它传过去的列位来,只要你点一下这个按钮之后,自传触发自定义S的事件,并把这个Y6值传过去,那这样的话,咱们副组件啊,就会被触发这一个回调函数,这样的话,我最终在副组件中拿到了要发的这一个信息的,来咱们重新的编译一下,来跟客们来测试一下,点击杨左进来之后啊,客们准备回车啊,回车走,咱们可以看到是不是在我162行啊这个地方啊,一百六十二一百六十一行差不多是吧,打印出来这在点D这里面就是我们最终想要的这一个信息。
10:59
记得那接下来咱们所有的精力的话呢,就可以放在我们这个组件的话呢,怎么去发消息和我们的这个收消息的这一个过程了,另外那发消息收消息都得用到我们TLS这一个模块呢,因为你得想下你这个消息发完之后,在别的用户能看得见,因为在这个直播间的其他用户都能看得见,因为你这是一个群聊嘛,相当于所以你必须得经过继续通讯啊,咱们这套系统啊,然后发给他之后,然后他再给你进行一个广播,这样的话,所有在群里面的人都能收得到,哎,这块好像用咱们自己用socket啊,我们基于node啊,我们基于H5的web socket啊,我们就能构建出来这样一个聊天群聊系统,它这个其实也是类似的,只不过它可以分封的更加优雅的而已,所以咱们在这里要用的方法的话,另外是这样一个方法来在这课程跟你说一下,收发消息中的话呢,一个叫做什么呀,Send message,这个是咱们调用TLS这个模。
11:59
块进行send的发送消息啊,这样的话呢,我们这些人都能收到这个消息的,而这一块的话呢,是监听,因为你要知道你自己发完之后啊,你肯定自己知道发的是什么啊,但是别人知道吗?所以咱们也得在代码中写一个什么监听这个消息,TR1问他message,我们需要监听这个消息,那这样的话相当于我隐蔽用户这个点完按钮send完之后啊,我自己获取不到啊,自己发的消息获取不到,在这个互调中,所以我只能自己的话呢,把这个要发的这个消息内容添加到我们的这个侧边栏的聊天区里面,然后的话呢,咱们代码中还有一个监听,那其他用户的话呢,就在这监听到了这一个消息了,所以咱们再在这里面获取到这个值之后,咱们再次的把这个消息的话呢,加到咱们的侧边栏的聊天区里面就可以了。
12:54
而这个时候作为隐蔽用户我自己不发了,但是一会发现我左边也出现了一条消息,那就是别人发的,因为咱们监听的这个事件嘛,所以这就很明繁啊,就是我们之前所说的on message啊,我们之前讲web socket,讲socket中这种啊,我们的message这一个事件啊,Send的这一个方法,其实道理的话呢,是一样的,只不过现在服务端也不用你自己去写,你只是作为小程序端开发啊,直接在这里监听message这个事件,在这里去send买这一个时间就可以了。好了,另外跟科文一起来看一下咱们具体在代码中啊,怎么去写了啊,咱们在我们的这个VSI在这个地方哈,一点完之后咱们不是要发吗?那在这儿的话,我们调用什么方法呀?this.rtls,咱们之前已经给它附上值了,这个模块里面有一个叫send message这一个方法,AGE这一个方法,啊这里的话就不是哈,就是小程序微信。
13:54
你的哈,四是咱们这个模块的,然后你要把你真正的这个消息,你发什么消息,你不给他传过去吗?哎在这里,然后对应的如果发成功之后,我们在这里就会回调,我们在这就会得到我们刚刚发的这个消息,咱们先测一下这个方法,也就是说这个就是我一点完按钮之后,我会主动的发消息,然后发成功了之后,我这一块的话是一个基于promise的一个用法,我就能在这里得到这个值,当然有人说改成AV啊都可以都可以啊,好了,一点击编译之后,咱们来看一眼,是不是点击养组啊,我们看啊,可水位回车咱们就能发现,这就是果然拿到了这个毁掉了啊,这个头像信息,Message信息,还有昵称这个信息,其实拿到这个信息啊,对于咱们只有一件事,我就是想把这个消息合并在这里啊,合并在这个位置来让我的这个侧边栏的公告的话呢,呃,侧边栏这个聊天区的话呢,能够显。
14:54
展示出来我说了什么什么话,对吧,那别人看见的话就是引宾说的什么什么话,因为咱们前面有一个form的格式的这样一个函数啊,Formman的昵称link这样一个函数,它能够进行区分好了,那接下来的话我就可以来,我不用从头再写吧,我觉得直接抄一抄不行吗?诶咱们在这里是不是这样一段代码呀,那客可不可以把这段代码咱们给他抄过来,来复制,应该就这样代码粘到这个位置来,咱们看一眼来。
15:27
看起来应该是这样的,我们这个Z4点TLS4的message之后,我们在这里这个是正常的typeb等于一的这种消息啊,放在一个数组里面了,然后我们在这里是我们把这个form的这个值,我们给它把这个data啊,咱们给它传进去了啊把诶这块应该是data啊,咱们这块就改成data吧,Data传进去之后,他会给我把我想要的这个name给我返回出来这个message这个值的话,咱们还真的再给他自己给他写一下message是不是就EVT点啊,这个我是知道的呀,EVT.data不至于我要了这一个message这一个词吗?嗯,啊,然后或者是大有人说坑,你也可以在返回的这个地方,就是我们这个data.message都行,你看咱们打印的这个返回的结果里面包含了内和头像,还有message这都行啊,在这里的话呢,Data点我们的这个message,或者是我们自己也知道这个值是什么,这就行了,要接下来这个ID啊,好放在这里没有问题。
16:28
然后再去重新的set一遍,诶就这样代码吧,来一保存,咱们重新编译,那现在我能做到的至少的话呢,是上侧边当中呢,能够显示出我的这个消息,别人收没收得到,肯定没有收得到,一回车之后,大家可以看一下是不是在这里走了,对吧呢?啊就这样一个感觉,我们这个消息的话呢,就每次的话就发出来了啊,但是我发现怎么好像这次测完之后,我也发现了一个大的问题,我这个动画它是不是有问题呀,我得看一眼哈么,这个动画每一次轱噜这么远啊啊咱们来测看一下这块有什么问题,刚才这个问题啊,它产生的原因啊,实在是捉摸捉不透的啊,这个咱们每一次啊,这个image啊,就这个头像,这个图片呀啊,你设置的mode等于Y,咱们知道宽度固定高度是适应啊,但这个玩意儿它每次进来之后呀,它会有一定的延迟,所以大家会发现你能感受到它有一点抻长的感觉,你看一回车之后,你这张图片,这张图片它。
17:28
它其实一开始是很大的,然后被你又缩成那个样子,所以它会顶一下子就在这里啊,这个最终的问题产生在这里,你把这个mood的给它删了之后,另外把Mo的这个给它删了啊,咱们就一开始就固定好这个图片多宽多长,在这里我们固定好,比如说我们宽度的话,就给它这个按照RPS吧,50高度的话我们给他一个30。按照这个比例来去算,列外可以自己去看一下这个小图的一个比例,咱们就给它固定好了,哎,就这么多啊,那这样的话呢,它就这么大了,对不对?52PX哈,它一运行之后,列外你看这一次咱们重新再走一遍,它就没有这个问题了啊,所以在这是根据咱们这个木的属性啊所导致的,你看这样来说,它滚动起来也就很平滑了啊,就按咱们当时想的呢,就一样了,好吧,这个问题这个确实啊,没想到我们这个图片给他设置目录属性也能出问题啊,我记得之前在用小程序VUI组件的时候,好像对于这个Mo等于这个fix这块也有点问题啊,在我之前那套微信小程序视频里面,我也说了这个问题啊,好吧,那这样的话,咱们就把这个图片的宽高呀,就给它固定好了就可以了,那这样咱们就继续回过头来,他怎么按照这个隐兵来进行显示的,对吧?这就是咱们应该正常考虑的这个小小错误问题了哈,来回到这儿来,这个应该是一个咱们的一个bug吧,这个隐兵不对哈,来到这里之后,咱们。
18:49
他在level GS中应该是咱们这个form data的时候,另外咱们这个第一次的时候哈,你看这东西加入群那的时候,他给咱们的信息很足啊,有什么那个UCID都给了,但其实这一次发消息的话呢,他就没有这些消息的,然后你可以再看一眼,为什么没有防范的成功,哎,因为这一次的这个data里面他没有UCID了,你想咱们当时写那个代码,来走一走,来aae回车,你看一眼,哎呦,呃,Res未定义,我们写成这个data,好,咱们重新的变译一遍,好吧,然后在这里点击这个阳组之后另外看一眼,来诶aaae回车,你看一下这里面它是没有那个UCID的,那没有UCID,你想呢,一进来来到咱们这个form慢的data里面没有UCID,它就是不可能相等的,所以就return了这个了啊,所以这块的话倒是哎呀这个小失误哈,咱们在这里在自己的话呢,进行这一个什么呀,判断啊,我们在这判。
19:49
判断的话,如果啊,我们这个UCIID传过去啊,再进行让它进行处理,这块UCIID按照这种对象的方式传的,那客在这的话要组建成一个对象呗,就是form data的时候,我可以在这里写好我的什么user ID,这个userc ID咱们得自己拿,自己从自己代码中拿这点data.user iner中去拿,哎,这个没办法啊,你得自己从你这边去拿这个userc ID了,要不然你咋整对不对,然后面这个头像的话呢,你也可以自己去拿AVT啊,当然打有人说消息里面返回了,那都行,反正我都能拿到这个值,你说我还能怕拿不到我这个头像这一个值嘛,是不是?哎,这样的话咱们就给它传过去了啊,这样的话呢,我们把这个值啊,还有这个给它传过去,就能把这个信息给返回来,但是好像在这我传这个第二个这个内这个词我在这里啊,不是头像这个词啊,是这个内啊,是内这个词我他是写错了啊,我说这个头像我也没用到吗。
20:50
所以在这里是一个内啊,这样的话咱们一保存之后,另外诶,咱们来看一下,最终这个效果的话呢,是不是按照咱们想的一样的来运行之后的话,我看一下来,我一点击之后。
21:03
在这个地方哈,Aae回车对不对,我发表了这个,诶整个感觉的话呢,也都是没有问题的,对不对,包括我们侧边区的这一个聊天区的滚动呀,也正常了啊,然后在这儿的话,这个哎都很正常,好,没有问题啊,这只是我们相当于啊,我们这个发消息的话呢,很成功,那接下来的话,咱们再来看一下我们收消息哈,就是说我们现在作为发消息者,我们将来也得收别人的这一个消息啊,所以咱们就得用到那一个事件监听的这一个方法了,这个事件监听的方法就是咱们的event message,所以来到上面这块,也就是说大家记住哈,在这个文件中的后面都是咱们的回调函数,在这个函数的上面这一块,从这里就是什么加入群组的,哎,然后再接下来这一块,接下来这一块就是咱们的什么呀,这这个得收到消息,收到这一个消息的,你看一下这个函数,一个是在咱们一。
22:03
开始了这个引ne里面对不对啊,初始化咱们就把这些事件监听都给它初始化好了啊,因为你事件监听没有事件来的时候它也不会好用啊,所以就在这里来一个什么Z4.tls,哎呀,我看一下这个文档中咋写的呀,Z4.ton啊,所以通过这个什么点TLS点啊,咱们监听一个叫什么呀,TLs.Eve点,点Eve,我这个点呢,点evet,然后点我们的message这样一个事件,然后在这的话,第二个参数的话呢,是咱们的一个回调函数啊,在这个回调函数中的话呢,就能拿到咱们别人给你发的这一个消息了,哎,在这里呀,这一块的这个测试的话呢,好像我们必须得找另一个用户啊,给大家发一下这个消息啊才行啊,那在这里的话呢,科们啊,再去扫一下啊,其实呢,咱们可以把这个过程的话呢,稍微的简化一下,就是我可以找一个地方发消息给你来测试。
23:03
咱们在我们的即时通讯中,他其实有一个咱们那个就是一个后台管理员的一个权限,咱可以让管理员给他们发这个消息不就行了吗?咱们来测一把呗,就你说是不是这样就行呀,来跟客户来看一眼,也就是说我们现在想测一下到底能不能收到这条消息,就别人给我发的能不能收得到,哎,保存之后看这个时件监听好不好用,重新这边编辑完了之后,我来到即时通讯的这个控制台中,咱们找到是杨左的直播间,在这块有一个发送消息列位看好了哈,杨左好,我作为引宾,我要继续看杨左的直播喽,诶好了,现在都输入上完成了啊,我自己发呢是完全没有问题的,好,这是我自己发的,那接下来的话呢,是养组,哎,这个直播间,或者说我作为这个直播间的后台管理员,我说发一个消息大家好好。大家会哈,点击确定之后,大家可以看一下发送成功,那如果我那个试件监听好用的话呢,我是能够收到这条消息的,所以很明显大家会发现我们在这里忽然打印出来了,而我们这个打印了data是没有问题的啊,只不过在这里打印出来这个内大家会发现,因为是没有的啊,然后这个头像地址是没有的,因为咱们是在后台中直接模拟了一下,给他发了这一个事件的,是不是啊,所以在这里的话呢,我认为啊,咱们可以在这里啊设定一下哈,我们在format data中啊,因为将来我就认为我们把那个消息添加进去就完事了,我把那个代码一复制一粘贴就行了啊,但是无疑就是前面可能没有文字显示,我可以稍微优化一下就行了,我只需要把这段文字的代码给它,CTRLC给他拿过来,粘到我们哪里了,就是这个收到消息这里大家给来看一眼,来没有问题,这里哈,等我们这个,哎呀,我多多粘了多粘了粘粘多了哈,粘多了好了,把这。
24:56
给删了,把这块给删了,然后咱们把这个现在给删了,好就在这里大家可以看一眼,呃,对应的只要我在这里啊,一得到消息之后,就一即push这一条消息for慢这一块的话,我们就改成啥就行了呀,这块就改成这次它有data啊data.ucd有了哈,这是里面有这个UCID了,然后也有这一个内了,我看见了啊,只不过唯一的就是咱们如果是从后台这种直接给发过来这种测试的话呢,可能没有,但其他人你想比如说是铁蛋用户啊,其他用户或者养左用户,他内个也有啊,包括UCIID也都会传过来,所以在这里应该是正常能够成功的啊,一保存之后的话呢,咱们可以呀,赶紧的测试一下,来跟客户测一下呢,重新的咱们编译一下。
25:46
就是从我们后台给发过来的这种了啊,我们现在来测试一下啊,点击这个发送消息111确定好走,你咱们来看一眼有没有呀,你看是不是有的呀啊但大家也会发现啊,原来我们这个即时通讯的I'm啊,不写不知道,一写吓一跳,他第一次也会给咱们发一条消息,要不然我不可能创建出来这个呀啊所以可以在这里的话呢,我这哈哈就是我在这里接收了之后,就在任何地方接收了之后的话呢,诶得到消息,得到消息的吗?啊,第一次就会收到一次,所以我判断一下呗,如果这个UCID是个空的情况下来的话,咱们就通就得了,大家应该知道坑这个是什么样的一个意思啊,就是我们如果这个data.ucid啊是没有的情况下,咱们就压根就return,咱们就在这里呀,就不给它这个处理的啊,所以重新的这个变译一下就行了啊,咱们走一下啊,也就是说其实在第一次,第一次一进来之后啊,我们在这里这个data我给打印打印一下,你看一眼,第一次一进来之。
26:46
空啊,它其实会打印一次,就是我们的后端会给咱们传一次,这个值的话,应该是在哪个地方给传的,应该是这个地方,另外我觉得应该是这个我也打印出来,你看一下104行,6.gs的104行,这是第一次咱们加入到直播间之后,咱们的后台系统给咱们发了一个,这里面的话呢,是没有UCID的,但是会告诉你一些咱们此时这个什么什么的一个状态啊,比较呃,好的一个状态啊,告诉你一个这样一个对象,但它没有UCID,就如果没有UCID的情况下,我就给你返回这一个,呃,返回就不执行,就不往里面添加了,所以这样第一次的话呢,是不会加进来的,那这样一运行,大家可以看一眼,是不是这样就好用了呀,那我之后的话呢,正常自己发没得问题,然后的话呢,模拟下别人给我发,哎点击的话呢,点击运行之后,咱们可以看一下也就没有问题了,是吧?啊答案在这,你如果为了更好的说,那QQ这块显示这个什么一号。
27:46
粉丝,然后这块还没有这个字,就感觉这太别扭了吧,所以在这里的话呢,我可以来到我们这个formman的这个这个方法中的话呢,稍微加点代码就行了,如果哈,如果你传过来的这个什么内的话呢,它等于等于一个空字符串,就是没有昵称的情况下,咱们可能认为这是从后台直接扔过来的一条消息,那这样的话我就给他说他是一个什么管理员这样一个角色,给他re return出去就可以了,对不对,哎,这样的话运行之后咱们可以跟科啊一起啊来测试一下,来运行之后编译啊,就是一开始啊,如第一次来咱们压根是ucd都没有,所以说直接就让他蠕同走就不执行了,对吧?啊不加入,但之后的话你有ucd的,但是你的内科信息没有头像信息没有啊,就是咱们从后台直接发的这种的,咱们就给他返回管理员这样的话,这种体验啊,给人感觉哈,好像很专业的样子,一是咱们自己发的是我嘛,那要别人模拟。
28:46
给我发,管理员给我发,管理员给我发,你确定之后发出去了,咱们这就会显示一个管理员发的这样一条消息了啊就这样一个处理方案,好吧,另外OK,这就是啊,咱们关于我们这一个聊天去,大家可以看咱们所做的工作不少呀啊从一开始的初始化,我想问主播一个三幕啊,清空消息到发消息,还有咱们的监听消息,而且还顺带的解决了一个bug啊最终啊,咱们就成功了,后面这块的话呢,把这个那个这块稍微做一下判断啊就可以了啊好了,呃,最后最后这块有一个非常有意思的一个点啊,大家跟这个客人来看一下哈,就我现在一进来之后嘛,对吧?哎,我正常的在这个地方,我能够正常的收发消息的,好,然后我们把这个谁啊引兵给他禁言,你看群组管理中之后,我们这个杨左这个直播间进来之后,咱们能看得到,现在有两个直播间的用户,一个是杨左群主。
29:46
另一个是隐兵,那这个时候的话呢,我对于隐兵进行禁言很有意思,对吧,直接把这个用户给禁言了,大家会发现哈,禁完言之后,这个时候我隐蔽再想发消息一回车之后,这个后面是没有的,但是用户看不到控制台,他只会认为说咱们这个程序bug了,而在这里的话呢,大家其实会发现是因为我们被禁言的不能发送消息,所以我想说的意思就是咱们可以呀,在这个函数,也就是说在我们这个send message这一块,他成功走点字就是发送成功了,那你想一想他会不会走失败呢?是不是有的呀,也就是说万一我被禁言了,那禁言这个事是管理员直接把我给禁掉了,那我我知道为什么呀,管理员给我禁掉了,所以我可不可以在这判断,如果这个ER是个对象哈,咱们给他吐成这个string,然后里面如果包含禁言,因为有时候报错不是因为禁言,可能是网断了呢,对不对,所以error,若to string之后咱们如果包含这个禁言,这两个字禁。
30:46
言这两个字对吧,里面有禁言这两个字,咱们就在这里啊,给用户弹出来一个什么受这个toast啊,告诉他的话呢,你被禁言了啊,你被禁言了,禁言了好了,禁言24小时,禁言24小时啊,然后在这的话呢,咱们这个我记得这个受透视的话,是不是有这个小的图标呀啊,然后还有自动消失的这个时间,另外可以自行的去查看一下这个小的受透的这样一个方法,那这样的话运行之后来咱们来测一下这个功能啊,特别有意思,完了点完之后的话呢,客人在这里输入AAA1回车之后,你被禁言了24小时啊,你被禁言24啊,看来这个字不那个什么哈,长度不太够了哈,所以我们在这里少一个字啊,你被禁言24小时,一回车之后,你被禁言24小时,那如果我把它从这个什么呀,小黑屋里面给他放出来,取消禁言。
31:46
的话呢,这样的话运营性咱们来看一眼,来在这里的话,诶,就正常的进行了发送了啊,所以这个啊,做直播开发还是蛮有意思的哈,可以随便禁言我们的用户大家就能看到啊,我们直播管理大大的权限还是非常大的哈,直接就能够禁掉谁啊,不让他说话啊,但是在这大家也会发现他不能删除这个啊,因为这个AV直播群是不能删除这个成员的,也是只有成员自己进来,还有的话呢,自己啊退出去OK,好,那咱们下一个小家就来考虑一下咱们这个自己退群的一个问题,因为大家可以想象一下,我们现在一旦进来之后,他就永远在这个群里面,因为咱们只调用了转room了啊,所以在这里啊,我点击这个返回按钮,我实现这一个退群的这个操作,而只要点完退群之后,我认为等我再次点这个查看直播间里面有谁的时候呢,里面就应该只有杨左这个群主了,尹冰因为已经退群了,但现在你会发现我重新编译一遍。
32:46
代码重新走一遍,大家认为说已经没有没有在群里面了,因为没有点击进入直播间,点到众人room中,但是你曾经撞用过了,你曾经加入直播间的呀,所以你会发现这个人还在直播间里面,所以这是有问题的列外啊,还是有问题的,OK,咱们在下一小节来好好看一下咱们的退出群聊,包括返回这一个功能。
我来说两句