00:00
来看一下吧,下面呢,我们准备来开发一个经典的就是项目,这一般是我们做TCP编程的必讲的一个项目,我以前讲Java呢,我也讲这个项目。啊,以前讲这个,呃,讲过一个那个cup cup的话呢,有些学生也喜欢用这个带带带界面看起来就比较好看,对吧?呃,我们这个没有带界面呢,可能就是就是这个基于文本的,那今天经常就是讲讲一个这个用户及时的通讯小系统啊,主要是把它里面东西搞清楚好,项目开发流程呢,跟以前是一样的,首先呢是我们需求分析。啊,需求的一个分析。需求分析完了过后呢,各位朋友,就是我们的一个设计对吧,我设计阶段设计完了过后呢,就是我们的编码实现,对编码实现。编码实现完了过呢,就是一个测试阶段啊,测试阶段过后呢,测试阶段,测试阶段完了过后呢,就是我们的一个不那个那个实施。
01:03
好,可以了,大致流程跟以前一样,这个我就不多说了,前面讲过一次流程,好,下面我们来看具体的内容,需求分析,我们希望呢,这个呃,海量的一个用户,即时通讯系统呢,能够完成的功能有这么多,首先用户能够完成一个注册。啊,你可以完成注册,第二个用户可以登录,如果用户名不存在的话呢,我们就登录啊,不能让他登录,你看啊,我们这儿跟他聊天。我们根本就没说你你有没有输你的用户名和密码,我直接就就跟你对接了,这不行,一般来讲,你看你做QQ,你你也得登个录码,你说QQ密码一输,诶,他说你密码对了,他就给你建立一个连接,密码不对,他给你打回去对不对,哎这这个意思大家应该到位,还有呢,显示在线的用户列表,因为你将来呢,同学们就说我们将来要对点对点,那将来我们可能还会有C客户端。
02:01
对吧,我们还有C客户端,那么比如说这个A想跟C说话。或者A想跟B说话,那你得。从这个A这个口端能够拿到B和C在线。然后我才给你对接,如果你不在线,我就没办法跟你聊啊,所以说呢,我们还要有一个小功能,就是显示用户在线信息,还有一个就是群聊,群聊就相当于广播,我们的消息相当于广播。广播。呃,我们以前啊,在我们那个时代就是,呃,记得是零几年吧,012年的时候,那个时候呃,其实最流行的一个一个一个小玩意儿是什么呢?就是聊天,聊天室的大家可能没听过啊,但0002年03年的时候,可能小鹏他也知道,就是聊天是网易搞了一个那个聊天室特别火爆,我们都喜欢去聊,那个时候聊天室他是很简单,所以说当时网易那个那个哥们叫丁磊,他很失误嘛,其实他最早做的是。
03:03
聊天的东西,他当时做的什么呢?就是群聊,就一聊天时大家都说话,你知道吗?有点类似于咱们这个微信群,就一说话大家都知道,然后呢,大家聊的都很开开心对吧?而且当时我们说能够在网上聊天就觉得很震撼,大家都很都很真诚,知道吗?那个时候那个网友是非常真诚的网友,有时候说话我就感觉好奇怪哦,这边一说话,那边居然有人说你好。啊,然后大家都非常的真诚,结果后面这个网络的网友全全是坏人,现在网友都已经变成一个贬义词了,你知道吗,对不对,那时候见网友我们都很隆重的啊,就是说比如说比较熟悉,打扮一番对不对,都很真诚,骗财少,后面骗子素质也上去了,人家也会聊天了,那那个时候能聊天的都是比较厉害的,比如配个IP啊,整个网线插下网线都觉得很厉害,那个口你在哪找的?对不对,现在不行了,当时那个群聊的聊天室特别火爆,就是大家都聊天嘛,很很开心,当时这个东西就是群聊,我们要用,还有一个点对点聊天呢,就说我们能够实现A指定跟C说话,私聊吗?要私聊A指定跟B聊天,哎反过来B也可以,哎这样子呢,我们把这个功能最后呢,我们再做一个,呃就说呃,想实现一个离线留言,离线留言呢,这个地方肯定要用到一个数据库了。
04:22
你比如说我给张三说了一句话,那张三不在线啊,当时我们就觉得这个很有意思,就说我给A给C发了一发了一个消息,说今天晚上我们吃烧烤,对吧,但是C不在线,不在线呢,诶等到C上线过后,他要从这个服务器把他的发给他的消息拽下来啊,拽下来这个就叫离线嘛,就跟咱们。这个这个手机一样,你看你把手机关,你收不到短信了,你打开手机啪啪啪一堆短信过来了是吧,这里其实也叫离离线,那么离线你怎么实现呢?离线你就得想怎么实现,这里面还是有东西的。
05:03
这些功能其实看起来并不并不复杂,但是要做好其实很难。你你后面就知道了,其实这个基于TC pip的这种编程,把这些功能做好其实真的不容易。他跟我们。他跟我们自己,呃,用外部开发还不一样,外部开发有很多东西都已经有了啊,比如说你打开一个网页,请求谁,你开始写东西了,但是TCBI变成你要从头到尾全是你自己确定,包括协议都是你的决定啊,所以说呢,这块呢,还是有一点小小难度啊,小小难度好,这是我们需求分析吧,界面设计呢,呃,比如说像这个就是基于文本的,这个很简单,就是我上来过登录聊天系统,注册用户退出,然后登录进去,进去以后呢,再看到一个新的菜单。那个菜单就说你要干干什么干什么干什么啊,大致就这样子的,好,我先把这个要求给同学们做一个简单的一个板述啊,这是一个经典的项目,叫海量用户及时通讯系统。
06:06
好,先给他板书到我们的笔记里边去。啊,我们要做一个什么东西,大家心里要有底啊,来第一个。第一个海量用户及时通讯软件,然后呢,项目的一个开发流程,诶这个呢,老师做了一个简短的说明。对,这个地方我们来一个标题三。啊,标题三,然后呢,它的流程跟我们以前说的是大致相同的,对不对,然后呢,这是我们的需求分析。哎,我们需求分析要做一个什么玩意儿呢?做这么一个带这样一些功能的啊,带这样一些功能的东西,第一个呢,我们叫用户的注册,诶用户的注册,然后呢,用户登录显示在线用户列表,群聊点对点对吧,离线留言啊,离线留言这个界面的一个简单设计也放在这里。
07:00
界面的一个简单设计也放在这里,好,这里呢,我就先看了一个界面啊,先看了一个界面。好,这个它首页面先放到这儿。啊,所以说随着这个科技的发展呢,呃,再新鲜的东西也不过是几天,所以说现在的东西新闻呢,就是各领风骚几小时啊,你刚看了几小时过后,诶,又来个新的,又把你吸引走了,所以现在节奏太快了,如果现在以你们现在的这个技术储备,放在呃565年六年之前,你们都是高手啊,现在不行了。以前我们说能写一个HT页面呢,都很厉害的啊,我记得当时很搞笑,我看在新浪我看了一个文档,他那个文档上面他有他去接那个项目,那上面写的是这个人做了大概两个网页,给了两千两,给了2000块钱。我还搞笑,以前有个同事,他跟我聊天。到老韩那个我以前接了个项目,我就借借了个东西做完了过后呢,大概真的有1万多块钱,后面那个那个客户,那个客户给我提了个要求,我提什么要求,他说他要求那个那个网页的那个底色,要要他原先是那个银灰的嘛,要把变成那个暗红的。
08:12
我说这个很简单吗?不就是后面把那个有个属性给他,呃,那个BG back color改一下,他说是改完了过后给了两两,给了200块钱,很有意思啊,但现在我跟你说现在不好使了,所以你你们现在就说,现在一定要大家记住老师一句话,任何东西你想去真的要在这个行业里面发展,一定要学最新的。等到你刚刚起来的时候是最好的,如如果这个你切入的时间短了,没没有机会,所以说我们现在学这个区块链,我们就赌了一把,就将区块链火了,你们你们真的是很好,但不火呢,这个也也不也不是很很大的问题,对吧,他总是需要区块链,除非他彻底不做了,但是这不可能好了,这是一个需求分析,需求分析完了过后呢,来我们来开始就准备写它了啊,但是有一个问题,虽然我们可以写了呢,有一个最大的问题是我们还不会ready。
09:07
因为大家想一想,既然你要实现这个注册,你要实现登录,那必然在我们的服务器端一定会有一个存储数据的地方。对不对,那你那是数据总得有个存的地儿啊,你不可能都把这个数据存在这个内存里面吗?你不可能都把它放在一个map里,那服务器一起东西都没有了吗?说到这面还有一个最大的问题,我们要学一个数据库,数据库现在比较流行的呢,一个是MYSQL数据库啊,还有orlel数据库,哎还有就是我们的no circleql数据库,像red啊,Red当然了,还有像memory catch这些啊,Memory catch这些也也可以做数据库,那这里面呢,呃,我这呢就选用red,那同学们以后做到后面的时候呢,诶老师有可能给你们讲MYL啊,也会会讲啊,会讲MY,我这就该讲一下这个red,因为为什么讲red呢?因为red相对来说他容易上手。
10:08
他他就是不学这个circle语句,不用什么S语句也可以搞定。你看选my circle,选articlele,你首先得选circle语句,挺累的,我们这个ready时呢,第一个它性能很强,第二个你只要学go语言,你够语言的map,还有那个管道你会操作,你你就几乎就能用这玩意了,它很简单,我们前面讲的那个切片负循环一用跑起来了。所以red的学习的成本呢,它比MYSQ要低啊,但你要用好也是一样啊,用用好也很难,用用好也很难,所以我们这呢,就给大家我们就选用red啊,一个是比较流行,第二个呢,呃,还是很不错的,到时到时间呢,我们数据就扔到哪里呢,各位同学,到时间我们这边数据如果产生的数据呢,我们就把它扔到这个地方去,哎,这样子离线呢,哎,还有用户的注册呀,诶我们都可以把它搞定了,好,这是我的一个示意图啊同学们,那么我们先来做一下这个计数前的一个准备。
11:12
把它先放在我们的笔中。OK,好,这个开项目开发前的一个技术储备。那这面主要我们要学习什么呀?在勾浪中就是主要是要学习在勾浪中如何使用red。那有些同学可能是学过re了,但是呢,在勾浪中怎么使用可能还不是很清楚,好到时间我们这个程序的架构或者结构呢,就发生了这样一个变化。好,发生了这样一个变化。Okay。好,我先把它拿到这儿。好,同学们,那关于这一块,就是我们所说的这么一个即时通讯系统的基本介绍,先说到这里。
我来说两句