00:00
好,同学们,我们接着呢,呃,来继续讲解,这个就是这个聊天系统的最后一个功能,那这个功能做完了以后呢,同学们就可以在老师的一个基础上来进行各种自己的设计啊,当然我也会给他布置一些任务哈。啊,通过这个锻炼呢,大家可以让我们把网络编程,包括包括我们编程的思路呢,把它更加的清晰好,下面呢,我们要完成的这个步骤就是最后这一步,哪里呢,服务器可以将接收到的消息群发或者叫推送给所有在线用户,但是呢,你不用发给自己。这一点很重要,就是说比如你发了一个消息说,哎,大家好,结果你实际还说这个话,大家好,一般来讲我们不要。给自己再再回送一个消息,叫你群发给别人的吗?当然你自己要显示也是可以的啊,那你就改成你对大家说啊也可以,这里面我的逻辑是呃,发送者除外,但你不除外肯定是简单嘛,那我这加一个发送者除外,大家注意一下这个步骤怎么完成好来完成这一步。
01:07
把它呢,拿到这个地方来。首先我们还是老规矩,各位朋友,我们还是老规矩,我们来做一个思路的分析。怎么来完成这一个群发呢?大家得动脑筋了哈,动脑筋打开我们这个地方,打开我们这个图假设,呃,你通过SM process。SM process把这个消息,把这个群发的消息呢,发送到哪里去了呢?发送到这边来了,发送到服务器端了,那服务器这边呢,肯定是先是有processor来接收到的。大家看一下是不是这样子的,打开这个,打开这个这个这个呃,代码啊,大家看,在server端我们有一个总控,总控这个地方它是能够拿到你发送的所有消息的,而且它已然给你序列化过了。
02:00
那可来看,我们这儿可以处理登录的消息,我们也可以处理注册的消息,现在呢,我们应该增加一个处理群发短消息的这么一个啊,这么一个分支,好,所以说代码一定要在这写,这是第一个分析出来的。那第二个呢,我们应该应该想一想,你在处理这个群发的时候,你在处理这个群发的时候。那么同学想象你这个任务去转发我们或者叫做转发这个消息吧,这个任务显然应该交给SM服务器这一端的SM processor process来处理更为合理,因为它是属于短消息相关的,不是跟用户相关的,对不对?所以在这里面呢,我们要增加一个啊,群发消群发消息的这么一个函数啊,这么一个方法,这么一个方法,好,呃,那你发完了过后,你还得想怎么处理呢?你把这个转发回去,因为你这相当于说你服务器拿到又又转发,转发给其他在线用户了嘛,那就意味着你的客户端还要去做。
03:06
还要去做一个响应,什么响应呢?就说如果别人转发的这个消息,你又怎么去处理。对不对,所以说这个地方你还得回头在这一个客户端的这个server里面的这个地方。就是这个。偷偷运行的携程里面还要增加一个处理,就是如果这个消息是SM message,你又怎么去处理?所以大家可以看到是这么一个逻辑了。所以你看为什么我在我在刚开始的时候,我说这个消息最好写两种呢,你看你发送的时候是message。现在你把这个东西推推回给客户端,你这个类型还是它,所以有时候呢,不是特别的好,你看这两个类型。这两个类型都在,相当于在客户端这个又是发送又是接收,因为他他会回推送给你一个嘛,所以说显得不是特别好。
04:04
所以说呢,嗯,很多地方它是把它做成一个response message,只是这两个结构长得很像,但是名称不一样。啊,这个地方我就没有去做这个区分了啊同学们你们呢,后边反正知道这个事儿就可以了,将来你在做公司里面做开发的时候呢,你最好还是给他稍微的有一个名称上的。变化变化,好,现在我们思路已经分析出来了啊,来同学们整理一下刚才老师的思路,我的思路是这样子的,我就写到在屁股后边了。这个时候我们要完成,还还还是这地方啊,接着在上面写就行了。好的。好的好,现在呢,我们在这个地方增加刚才我们说的这个逻辑的分析,第四一步,第四一步,嗯,现在呢,我们就在服务器端,服务器端来接收客户端发送消息,并处理在服务器。
05:03
服务器端接收。接收到,接收到什么呢?就是SM message这种这种消息。SM message啊,Message这个消息。然后收到这个地方过后呢,第五一步我们要在哪里呢?在我们要在这个服务器端server的process里面的SM。SM,然后process.go这个文文件中增加一个。群发消息的一个方法,增加增加群发消息的一个方法,好,然后呢,在客户端还要去处理一个响应别人给你给你发过来的群发消息的,呃,那个方法在哪里呢?在客户端,在客户端比如说客户端还要增加,还要增加,还要增加去处理,去处理什么呢?就是呃,服务器端,服务器端转发的。
06:08
转发的这个群发消息,群发消息。OK啊,群发消息,那大体来说有事三部曲。大体来说三部曲好,这是老师刚才分析的一个思路,我先把它把这块标成一个红色的啊,红色的好,这块思路呢,我们先给大家介绍到这里。
我来说两句