00:00
好,首先呢,我们先把这两个新增的结构体把它搞定,先是一个这个SM message好打开,它在哪里写呢。我们就在这儿写吧。就在这写,形成一个。增加啊,增加一个SM这个message啊,那么大家要想一想,你有没有再新增一个,有些同学会想说,老师你群发消息的话,有没有一个response呢?也有可能也有可能啊,就说我这新增加这个消息是发送的。发送的,那么有些同学说老师有没有一种可能性,还有一个叫做SM SM response message也有可能,比如说有些服务器呢,他拿到你发的消息过后,会进行一定的过滤,或者增加一些东西,比如说他发现你群发消息里面有些比较敏感的这种关键字,他可能会把敏感词给你换成星星。这些要在服务器做,说老师我在这个客户端做可不可以,客户端也可以做,但是服务器也要做一下,你看你不相信你啊,你可以去试一下,比如说你在那个QQ里面说一些特别敏感的词,当你发送过去的时候呢,你会发现你对方收到的这个消息,那个比较敏感的就直接变成星号了,或者根本就发不出去,他会直接从服务器给你打回来一个消息,说呃,你这什么内容涉及一些敏感词,就直接拒绝为你转发。
01:24
那这个工作呢,也有可能有一个SM的一个反馈的消息结构器啊,也有可能,甚至有些时候呢,你们看到当你发一个消息过后呢,顺带发给对方的时候,他带一个广告过去,也有可能他根据你发送的内容,比如说你关心就可以加些大数据在里边,比如说他发现你关心的是这个话题,比如说诶你你说诶我想看一本Java书,他可能带一点带一个Java的广告,书籍的广告一起发给你。这些也是有可能的,所以说呢,这个呢,我先暂时暂时不去设计了,因为设计的东西扩展起来很多啊,或者很多好这个我就设计一个比较简单的,就叫发送的消息回送的,我们就呃回送呢,我们就相当于直接转发了,我在服务器做一个比较简单处理,我拿到这个东西呢,我也不去过滤,我也不去检查,我就直接。
02:12
相当于说服务器做了一个中转,拿到过后转给转给其他人就行了。好,那我的这个设计思路这样子的type。然后呢,我们有个SM短消息。Message,好,然后它里面的内容呢,呃,第一个就是它肯定要有说话的内容,我们叫connect content单词叫content啊,建议不要这么取名,因为这个C呢,很容易跟那个连C跟那个connect很像,所以说我就写个全称叫。这个content有些人喜欢叫body也行,是个字符串,好,然后呢,这边有一个什么呢,有一个标签。好,这个标签呢,我们叫content就可以了,好,第一个这是内容。
03:01
这是内容,第二个呢,你得表示,呃,你这个短消息是谁发出去的,因为服务器那边可能会做一个组装,诶到代表是谁,对方拿到过,诶知道是谁发过来的呀,他的昵称是什么,他的ID是什么,甚至包括在IP地址是什么,我都可以把它包裹在这个包包里面去,所以说这块呢,咱们直接用user就完事了,不用不用再去写一遍哈,我们这直接用user就可以了,能理解我的意思就直接用user。啊,UR它这个userr类型呢,呃,那它的类型就是这个,就这个userr就行了。就就这,因为它里面信息很全嘛,密码用户名,但是你在发的时候,你肯定不会把自己密码也带过去,肯定你不会说诶我的密码是谁,肯定是不会带的,你肯定带个ID名字,呃,状态也有可能有对吧?好那么我就这简单写一下啊。这叫呃,其实这直接写一个这个都行,挺简单的,直接你直接在这写一个这个user点就行了,因为他们在同一个包包里面,是不是这意思啊,他们在同一个包包里面,说是你这一个匿名结构体就应该可以了,就应该可以了,就这个包它是同一个地方对吧,所以这是用一个匿名的结构体。
04:15
结构体好,这边其实用了一点这个我们所说的这个继承的一种一种关系,好保存一下看有没有问题。好的,应该没事,应该没事的话呢,我们同样把这个类型也增加进去。增加到哪里呢?增加到这就可以了。好,加一个这个类型type,这个叫做短信消息。然后呢,我们这加一个东西好就可以了,好这个就做完了啊,紧接着呢,根据刚才的分析,我们应该还有一个current user,那为什么要有个current user呢?就是因为你必须得维护你自身的一个信息。啊,你自己哦,你自己的连接是谁,你你是谁,你得有啊,比如说打个最简单的比方,你看我们这儿登录以后,一个客户端登录以后,我们这恭喜叉叉叉登录在这儿,你是非常不礼貌的,对不对,你应该把自己的ID,把自己名字提出哦,恭喜就说谁谁恭喜谁谁登录成功了,或者把你的名字提示一下,你也得有这个东西嘛,所以说呢,我们还有一个current user能理解。
05:21
好,各位朋友,那么现在呢,我们把这个呢,也定义在哪里呢?这个不是共用的,所以说不要写在这个common里面,咱们单独的放在model包包里面去,注意听好新建一个文件夹,我们就叫current current user啊OK。好,跟上思路啊,这里面我们打一个包包package啊model model包,然后呢,嗯,这里面呢,我们就先写一个结构体啊,结构体,结构体好它就叫currentn cur cur好这么一个东西,那么它是一个结,呃,写错了,前面是type。
06:02
Type吧。走。啊,这地方呢,我们来一个structure。里面有什么呢?它也用到一个匿名的,他首先他自己呢,会呃会去维护自身的一个连接,那么这个连接是connect里面的一个连接。好,这面我要以一个包import。Net包,然后呢,他还要嵌嵌入一个user信息,就他自己的信息啊,那这个就message。Mesa点右就可以了。那也前面是签名,那这个时候因为用到message了呢,所以说我们要引入message的,呃,Message的这么一个东西,Message的一个包,好我把它引进来啊同学们。就他。因为我要用到它里面的东西了嘛,所引进来。好的,各位同学,这个就写完了。那这样写完以后,我们下一步得琢磨这个事情,就是你这个current user在什么时候给他初始化一下。
07:04
对不对,那肯定你作为一个current user,他已经是个全局的。因为你作为你将来在很多地方,你都可能会用到这个连接,甚至会去提提示他的这提醒他自己的ID啊,用户名这些,所以说呢,我们也把它做成一个全局的说一下啊,因为因为在客户端。在客户端,客户端我们很多地方,很多地方会使用到,使用到这个current userr,所以说我们把它做一个全局的,我们将其将其作为作为一个全局的啊,一个全局的,那这个全局的变量在哪里,在哪里呢?你可以放在这个model包,也可以放在别的包,比如说你放在这个地方也行。你放到这儿也行。呃,因为它作为统一管理嘛,我们这不是有一个map了吗?那同时在这建一个current也可以啊也可以,那我就直接直接在这写了啊。
08:03
那么VR啊VVR,那么一个current啊,我们做一个全局的吧。Current current current user。然后它的类型呢,是model包包里面的一个cover user。他有。User啊U,好,这是全局的,我以下这个model包。我一下这个毛豆包。好,呃,那么在这里呢,有一个client c,然后呢,这边有个model,对,有个model就初始化,但是你这个值你在这只是定义一个全局,你没有初始化他也不行,到时间他啥都没有,那问题来了,在什么地方去把这些值送给它比较合理呢?显然还是在他登录成功以后去完成对它初始化最最合理的,所以说我这写一句话啊。我们在用户用户登录成功后,登录成功后完成完成。
09:06
完成对什么呢?对这个current current user的一个初始化。初始化。初啊初始化。初始化。好,嗯,那这个没问题了啊,这个地方其实你其实小写都可以,因为你现在主要就是在process这个包包里面用,所以说你是小写也可以啊,也可以,好这个地方呢,我先暂时不改了,那怎么去做这个事情呢?来打开一下登录成功在哪里,我们寻寻觅觅。我们找到在user process里面呢,它其实是有这么一个动作的,大家看跟上思路。在logging登录成功200号找到他。在这里我们找到了它登录成功的位置。就这。好在这样成录登录成功以后呢,我就直接在这初始化我们的这个current user对初始化啊。
10:04
初始化,初始化哪个呢?Current。好,嗯,很简单啊,很简单。有那我就写了啊CU current。点它的connect连接,我要的就是它。因为待会儿我要用它这个链接发东西。那嗯,连接呢,其实就是这它创建好的这个连接在客户端这头呢,只有一个connect。跟服务器不一样,服务器有多个,他这只有一个好给他了,第二个你得把这个用户的信息也给大家初始化一下,那这个很也很简单,CU current它这里面呢,因为用的是用的是这个继承的关系,大家看到啊,Current这个里面呢,它直接用了message user message user里面呢,它其实里面包含的信息是这些信息。
11:01
大家可以看到这些,嗯,那么我们用它的特点直接点就行了。就说我们以前学过嵌入一个匿名的一个结结构体名称,如果它它本身没有含这个字段的话,它可以直接用,这这点我们在前面写过啊,所以说老师呢,就不啰嗦了,我就直接写这个东西了,写到这叫user ID。当前这个用户ID吗?不就是你登录的ID吗?你登录的ID不就是你这输进去的吗?哎,你这不是输进来的user是ID吗?把它放进去就可以了,这是你当前这个用户啊。好把它放进去完事,名字状态这些呢,你也可以写一下,就说我是一个在线啊或者什么的,呃,比如说你还你还想加一点,比如说诶将来我还想把我自己的地地址也带给对方,可以,那你这个扩展性就很好了,说老师我还我还想加一个自己的性别,我想加一个自己的性别,我想加一个自己的电子邮件可以对吧,那你这玩嘛简单吗?性别对吧,你说诶老师我还想加个性别男或者是女可以。
12:06
可以,你可以这样指文啊,可以这样指纹没问题。这就是你的一个自由了,对吧,你你自己想怎么玩,你自己自己可以自己加东西,就是你觉得信息还有头像啊呃,他的这个他的座右铭呢,对不对,他什么时候出生的呀,等等,你可以可以写进去,好这个就是你们自己可以扩展好吧,那我也可以写到这,比如说一个性别。好性别肯定他在,呃,他在登录的时候,或者是他登录以后,他通过那个通过那个red把它东西取出来,也有可能因为他注册的时候信息很多,好这个呢,我就四个亿放到这儿,好回头在这儿接着往下写啊。好,我们把这个信息给好了,嗯,那可以再给他来一个状态吧,Standards。我看这有没有这个东西。有啊,有个用户状态,我给他一个用户状态,用户状态呢,我们假定就是一个在线的啊,Message里面有一个user online。
13:08
当然。好完事,那么这个信息有了,就说相当于说我们这个current已经在登录成功以后,就把这些东西拿到了啊好拿到这个信息的目的干什么呢?你要他的目的不就是想放放东西出去吗?现在我们已经完成了,他也完成,他最后需要做这个动作了,群发。那你群发的话,问题又来了,你群发,你要群发的话,你首先得拿给我传一个什么进来,我帮你群发。你得看以前你这个登录是怎么做的,你可以或者注册是怎么做的,你可以按照这个思路来来玩一把,好我们来看看,嗯,怎么做这个东西呢。好,来一起写一下,找到SM process,现在这个地方是啥事都没有啊,什么都没做过,是个空的,现在就要把它用起来了啊,好,现在要用起来了。
14:10
好,同学们,那现在呢,首先import。好。好,现在呢,我写一个,呃,首先这个结构体我们还是要要的,还是要要的啊,那这块呢。就是SMSM的一个process。然后呢,它是一个结构体。前面这个是type type,它这里面有什么东西呢?好像暂时想不出来,因为连接我们也不能也不交给他,要连接交给他也不合理啊,他只是个短信处理,说连接不交叉ID呢,也也也有那个current user人来维护了,所以它相当于说只是一个声明了一下,那么我们写一个发送发送群群聊的消息。群聊的消息,那现在就开始写function。
15:01
那么这边呢,我们老规矩,This,走,给他来一个。把你惯了,一个方法叫send。Send group群发的一个消息。好,那群发消息我们看以前我们是类似于登录是怎么做的,我们可以模仿一下,对吧,我们可以模仿一下啊,当时我们怎么做的呢?诶看一下我们发现以前注册。对,我们注册是这样写的。啊,给他的用户名密码有个error。啊,就是登录注册呢,注册好像也是类似的一种写法吧。注册给的也是。这些信息。好,那么我们可以可以这样来想。那这地方我们也要返回一个error。对,返回一个L,它肯定要发东西出去。好,包起来。包起来。那你想想,现在其实说白了就是你把内容给我,我就可以了,因为目前目前对他来说,他只要一个比较简单,就是你要要说什么话,因此呢,咱就简单一些content string就行了。
16:05
就你你把这个你要说的话,你的内容给我,我负责给你发过去。那发送怎么发呢?来又是一个套路了啊,发送的时候首先把你的内容封装到一个message这么一个结构体里面去,必须的话发出去扔出去就行了,来第一步创建。好,那创建创建一个message。啊,Message好,这个很简单,Message,然后呢,message.me好,第一步第二个把它类型给我指定,它的类型,就是刚才我们刚刚自定义的一个短消息类型,对不对,没问题吧,把它扔进去完事。好,当然这个前面呢,应该带一个包包。Me,好,紧接着它的data部分没有,要给他一个新的东西叫创建。
17:01
创建一个什么玩意呢,就是一个MS这个东西,这个内容。啊,这这这这个这个实例啊,这个实例很简单,写一下s message来,然后呢,Message message点。SMS,然后message没没有这个type了啊,没有这个type,然后呢,把里面东西给给他清楚,首先第一个。你你发送的内容,现在人家已经已经告诉你了,就是这个content的,所以说你二话不说给他付过去就行了,内容有了啊,内容有了第二个你还得告诉别人你是谁。你是谁?那你是谁呢?你你你你你是谁?你不是current已经已经有了吗?你把current给他,给他扔过去就行了,你是谁啊,哎,什么点message。点mes点它有一个,我们看看它当时是怎么设计的啊。
18:03
哦,这个家伙,这个家伙呢,他这设计的是用一个一密结构体。好,那么我们也给他吧,我们也给他秘密结构体的话,呃,那就这样做简单一点,我们就这样处理了啊,直接访问。MS这个message,它user ID是仿照的,直接从哪里取,从我们这个current取啊current user看这个就有用了。User,点它这里面有个user ID。相当于把它付了一下,但是这样做呢,很不划算,相当于你又去重新操作了一遍,很不划算,干脆我们这样做好不好?简单一点这样做,哦,还不行,还真的这么干,因为current里面有个连接,你还不能直接付给他。那只能这么写了,我当时还想这么做,就是诶这个这个消息里面,我我做一个UR,直接把卡付给他,但是这样子呢,一想呢,会多把那个卡那个连接也给他带过去,这样不划算了,所以说还得一步步的给它重新赋下值啊,还得重新赋下值,那就这样赋个值吧。
19:09
好来没事,信息也不多啊,到时候大家可以再把它分一下,比如说他的呃,就一个ID,还有一个好像有一个状态吧,Status。Start值呢,也从这取出来。对,也从他这儿取出来就可以了。Starts相当于给了他一下,好,这个就可以了。嗯,那这一段有了过后呢,我们把这个SM进行一个序列化。对,这个很简单啊,将。序列化,序列化我们的这个SM message,这个我们写了好多遍了,Data走L。走,然后呢,jason.muscle。好,然后我们这地方写的就是SM message序列化,如果没有没有错误对吧,我们就OK,如果有错误,我们就打印出一句话。
20:03
就虚拟化失败。虚拟化失败,不玩了。就是Jason序列化失败,或者叫send group send group里面有一个序列化失败。哦,失败了。这等于什么呢?把这个信息打出来啊,有些人呢,可能是这样子,把信息再取了一下,取成字符串的形式打出来的,好,这个就不玩了,直接return,直接return。好,如果这个序列成功了,我们就把这个data给它关联上。这个我们先写过好多遍。对塔。给它关联上,怎么关联对塔就可以了,好紧接着对我们的对谁呢?对这个。MAS再次序列化。再持续的话。对,再次序列化对不对,那再序列化过后呢,我们再去把它发送这个代代码就比较简单复制一份。
21:01
然后这边冒号去掉。然后呢,把这个。SM放进去,序列化了。学代化过后,我们接着往下走。好,第五步发送,将什么发送去将这个MS序列化的,序列化后的MS发送中发送给服务器。发送给服务器。那那那怎么发呢?显然你还得用我们这个传十份来发,对吧,还是用传十本来发TF。创建一个TF轴。然后呢,爱的符号就是我们UT包里面有一个非常可爱的transfer,然后呢,把链接给他,这个链接已经在我们的current user身上了,所以说你直接取出来就行了,Current user。点。OK,注意哪一个逗号。好,有了它过后不要犹豫,不要彷徨,发送。
22:01
那发射的时候呢,人家用TF的那个right right p kg这个方法。好,把什么放进去呢?把我们这个data放进去,因为data现在已经是一个BY切片了,BY切片所以说完全没问题,这方会返回一个错误接收一下。如果这个地方是错错误,我们就提示一句话,说你发送的信息有问题对不对?L如果不等于零,就说明我们发送包包出问题了。那地方最好是这样提示一下send group对吧,Send group send message。L等于什么呢?把信息打出来。E。好,最后这帮发送不了,我们就return。好,最后还有个return。好,代码就写完了。那么我们把它保存一下,看看这个代码有没有问题啊,同学们保一下可能有些错误,我们把它调调。好,这边有很多包没有隐去,我们快速的把包包引一下,走一个message包,这些可能都会要我把它复制一下。
23:09
放到这边来。对,放到这边来啊,Comment battery1保存,应该好多错误都没有了。好,还有两个错误,嗯,他说这个地方是什么玩意,他说on饭,因为这个current呢,呃,它是个全局的,但是呃有个是什么。ID对,非常的好,这个是大写的。好,我们现在还有一个错误啊,同学们,还有这应该是这个没有用到,没有用到呢,我们把这个包包扔掉就可以了,各位同学好的,现在呢,我们已经把写好了,写好过后你的想象在哪里去调用了。因为你现在呢,已经把这些都搞定,那你那你发的时候,你发送的时候你得调它,而你而你这个信息书书的内容呢,是在server这个主主菜单里面提示的,所以说现在我们完成一个衔接,就是由他由这个地方来调用我们这个方法就搞定了,就是它呢,它这个地方发这个消息的时候来调它这个群发,刚刚写的这个群发这个函数就搞定了,好的,那这个关系我们就捋清楚了啊同学们来了。
24:21
整一个啊,打开这里,我们把它衔上,衔接上,找到我们的server顶go server顶购。然后呢,我们是在这个地方的,他说请输入请要发送消息吗?好,你要发送消息,我就来提示一下,请输入你要发你想对大家说的话。来一个。Format print。艾伦说句话啊,请输入,请输入。请输入你。你想对想对大家说的话,你想对大家说什么叫做?
25:00
你想对大家说点什么啊,这样说,你想对大家说点什么,说点什么,OK一个。销量。好,这个时候呢,你肯定要有一个字符上来接收了,这是必然的字符接收呢,呃,你可以把这个变量定在Switch Switch的外边可以这样写VR,比如说我们这个叫我们发送的内容吧,叫content的一个字符串。对,那这个时候我们接收一下啊,S什么点看F。然后呢,它的类型是S斜杠,然后我们把它接收到content里面去。好的。好的好,刚刚把这个做完了以后呢,我们调用刚才写的那个方法,当然我们以前也是说过的啊,你调用这个方法仍然是去调他,那你调它,我们以前的老规矩就是要使用哪一个process,先去实例化这样一个对象,然后再去做。
26:00
其实像这个process呢,你也可以不用反复实例化,因为以后可能只会用到一个,所以说这个是个好处,这个这个是CS开发有一个特别好的地方,就是只要你这个程序不退出,它的实力,其实一直可以使用。这个跟外部开发有个巨大区别,外部开发一般是一个请求过去,然后呢,这个这些东西就全部的用完,就全部清空了,PHP就是这个经典的特色,经典的特点啊,所以说那个时候呢,就是一次性就完,用完就销毁了,用完就销毁了,效率上就不能不能反复使用,这这个这这个这个实例,那现在呢,我们,呃,像这种都可以反复使用,反复使用的话,你也可以想办法把这个SM创建在外边去,因为你要用我就用嘛,大不了你肯定要说话嘛,你大家想嘛,没有必要在这儿,为什么不要在这儿呢?不要在这的话,有个好处就是比如说人家再说第二次的时候,我还重建实力,我很累。如果我创建show me show me用里面我就创建一次,那以后你要说话,我就用它帮我去干这个事就完了,对吧,效率上呢,我们又可以节约开销,所以说我把这个相应的这个玩意儿呢,也创建在这,明白好这里,因为因为你一定会说话,因为我们我们总会,我们总会。
27:23
总会使用到,使用到什么呢?SMS的这个process的一个实例,因此呢,我们把这个实例的创建放在这个外边,放在这个Switch外边,因此呢,因此因此啊,因此。我们将其将其定义在定义在十位区的外部,防止我们多次,比如说你说完一句话再去说我还,我还创建一个,再去再创建一个,不划算不划算,将其定在水池外部。OK啊,那么这个时候呢,就这样写了啊,就是呃,我就写全一点,SM这个就。
28:05
SSM。SM process。好,嗯,它这个地方是我看看是做一个指针类型还是什么啊,我看看我绑定的方法是指针,那么我也是创建一个指针给他就可以了,非常简单,走等于二二的符号。那么他们现在是在同一个包包下面,所以说直接就SM。Process。就这么一个小实力在这放着,空的里面也没东西啊,其实就其其实就是就是用它来吊一下,那我把它。这一帮来一个类型推导。好,这个不不需要带,不需要带包名啊,因为他们都在同一个包,所以在这呢,直接调他一下就完事了点。点它其中一个方法叫send group message send group OK。把这个内容给它扔进去,Content。
29:00
好了。好,现在我们这个就完了啊,那现在呢,我们来看看到底我们有没有成功呢。那现在已经把消息发出去了,你怎么来验证你的消息发送成功了呢?很简单,我们只需要在服在这个服务器的这一头,它服务器不是有一个总控吗?有process,这个process呢,它会拿到一个,不管你什么消息我都会拿到,所以说我在这先来做一个验证,看看你服务器,呃,客户端发的消息我收到没有,然后我再下一步进行一个转发的工作,能理解哈,OK,那现在我要做一个证明了,现在我来我来证明一下这个事情,找到我的这个。你看这个很很郁闷啊,就是一会儿写字一会儿写那。但没有办法,这个东西就是这样子的。好,我找到我的总控,总控process。在这里大家可以看到我们这有一个叫server process message,现在在server这边的喽,你看这不是已经。
30:02
通过它那个读取已经拿到message了吗?那我干脆就打一句话,我测一下,看看我你给我说的话,我我服务器端有没有收到,然后我再决定下一步继续开发,好我们这里看看,看看从从客户端是否能是否能接收到啊,看看是否能接收接收到服务器客户端发送的这个聊天或叫群发,群发的消息。没问题吧,啊把它输出来看一下。看他说的对不对啊,Print a来一个好message等于,待会打完了过后把它删掉就可以了。message等于。好的,那现在呢,我们来编译运行一把。好,看看编译运行能否成功啊,同学们,那打开我们这个地方。我们这边有server端,Server这边呢,我们也要编一下。你看这个网络还是很稳定的,只要你不去动它,一般来讲它不会断掉啊,一般来讲不会断掉。
31:06
来编一下,一。变异了啊。好,然后呢,我们来运行,我们来运行这个server端,好,他现在正在8889上进行一个监听。那现在呢,我起一个客户端,客户端呢我肯定要编一下一,因为刚才我们写的东西已经写了好些改编的东西,看看能不能编译成功。我们发现编译也没有任何问题,好,现在呢,我一下。走。我先呃登录,我就用一个已经存在的100号,然后123456回车。好,同学们,现在呢,他这边第一个收到是一个登录消息,这个是很正常的,你看这里,他说我收到一个消息叫log message是100号,这个人密码,用户名,因为现在我没填,所以它是个空的,好说明,但是在数据库里面我抽出来他是汤姆,对应的汤姆,对吧,以前我加了一个汤姆。
32:02
啊好,现在呢,我们这边就是这样子啊,接着再来让他聊一下天。聊天呢,我输入一个四号啊,输入一个二。他说你想对大家说点什么呢?好,我就说一个很简单,Hello everybody啊,Hello everybody好,回车注意看后台这里面有没拿到。OK,好像有点,哦不没没啥问题,没啥问题啊,现在这种是拿到了服务器端这一块,其实已经顺利的拿到我们的内容了,只是他这为什么说消息类型不存在无法处理呢?因为你还没有做这个逻辑处理,对不对,你服务器这方你还没去检测嘛,所以说是正常的,你看这我们拿到的消息是。S message content是hello body是谁发过来的呢?这个家伙。是。哎,这个怎么是这样子的啊,Content是内容。
33:01
这个地方是他的user ID,对的对的,因为我用的是一个匿名嘛,匿名的一个结构,你嵌进去ID是100号发过来的,呃,名字没有状态,应该是一个在线好像。好在在线是是零零是表示在线性别,因为他没有填,所以说是个空的,好这个是没问题的,说明是100号这个人出了一个hello body,好,这就第一个咱们就成功了,好我把这个代码呢,给同学们简单的整理一把,好我们看我们做了哪些事情啊各位朋友。啊,各位同学,我们看看我们做了哪些事情。好,我现在把它放在我们这边。好,我刚才写了哪些事情呢?我们来玩一把。把思路捋一捋。把思路理一理。好,往下走啊,同学们,现在第一步万里,万里长城,我们走完第一步了。好,其实这个万里长城就两步,下一步就走完了。
34:02
代码。太多啊,太多。往下面再捋捋哦,这儿还有啊,这地方怎么回事。啊,好好坐这来了。这是我们的第三一个,现在正要实现的第三个功能是登录用户可以完成这个群聊,对不对,群聊来给他来一个标题三没问题,那么这个群聊呢,我们分为两步走,我们先走的步骤一。步骤一呢,我们做了哪些事情,大家可以看一下诶。步骤一,我们先完成了,或者现在我们正已经完成的是用户他可以发送一个消息给服务器端,服务器端呢可以正确的接收,那么我在这里首先做了一个思路分析。我先做了一个思路分析,对不对,好。思路分析。思路分析。好,这个思路分析我是怎么做的呢?
35:00
好,我在这画了一个简单的示意图。在这画了个示意图,大家应该能够一目了然看出来大概是是怎么做的,对吧?诶你看这我们加了应该是加了两个两个结构体,然后呢,增加了一个函数,这是我的一些思路。然后呢,加了一个这个。加了一个这个在这里面加了一个方法,好的,这是我们的一个思路。好,具体代码呢,我们来看看怎么做的代码的实现,代码实现呢,呃,就第一步我们看一下。第一步啊,我们增加了就是在这个common。Comma这个包。Come,这个包包下面有个message。Message下面有个message.go啊,点go我们加了一个结构体,看一下在这里。在哪里呢?在诶找一下啊,找一下在这儿。找下在这儿买手机。
36:00
加了一个这个东西。加了一个这个东西没问题。这是我们新家的。第二个呢,我们在这个。呃,在这个user这方好像没user这边没有加什么东西啊,就是这个可加可不加的,我就不去说了,还加了一个current,对,加了一个current。Current user,这是在客户端的model里面加了一个这个东西,这个东西呢,它最主要的作用就是要去维护你当前的一个连接,否则以后你不知道怎么怎么发了啊,不知道怎么发了。好,那现在呢,我们也把它放到这里,诶我们新加了一个这个东西在客户端。客户端的这个model这个下面我们增加了一个current CU。Current这个user订购。好,这个呢,我们是加了什么东西看一下。A加了这么一个东西,往这儿做出来。
37:01
好,放到这儿。然后呢,这个做完了以后呢,我们在这个client。这个process它有一个SMS,然后process点购,我们增加了一个方法,增加了一个发送群聊,群聊消息,群聊消息的方法,具体来说就在这儿写的。就在这个地方找到还是没有啊,就这个方法。就这个方法。好,把它整理一下到这里来。好的。好,罗列一下啊,同学们。好往这儿第34行。第34行。爷。那这个为什么不让我?好,第第34行完成。好,后面还有一点啊,后面还有01:34行,下面这全没有了。
38:00
发送过来。第35号。好,把它保存到笔记里边去。好,这样子呢,我们一测试就可以成功了啊测试测试的效果就是你如果这边能够正确的发送的话呢,服务器这端是可以收到你的信息的。如果你能够测试到服务器端能够正确的接收到这个包包,这个包包说明就成功了。好,同学们,关于这个就是群发消息的第一个步骤的代码,还有分析呢,我们就先给大家讲解到这里。
我来说两句