00:00
我们接着上午的内容呢,继续来讲解,上午我们讲了一下这个Java的r mi的一个使用,那么我们接着来看使用r mi来实现远程代理模式控制糖果机的一个监控,那同学们看一下这个啊,这个图。啊,这个图啊,这个图呢,就是我们远程代理的一个示意图,待会呢我们要这么做,本地有一个monitor,本地monitor呢,通过这个imi去访问远程糖果机,远程糖果机M,那么这里它给我们提供调用或者是监控。机器的接口。当然我们是实现这个远程控制的,好,这是它的一个示意图,那么我们有了一个示意图过后呢,我们不废话,我们直接就在这个基础上进行一个改写,来看一看我们怎么是实现了远程代理的啊。
01:01
啊,首先呢,我们要说明一下,演示时我的客户端直接使用了server啊,就是我的接口远程的这个接口本身它应该分开的。就是一个接口和那个是个人一份,那么我这呢,因为在同一台机器,我就没有分开啊,大家知道一下,那么我们来看一下这个代码是怎么改写的,因为这个改写的代码量呢也很大,所以说我们直接把代码拿过来给大家进行一个讲解,我取了一个名字叫remote candy machine。那我现在呢,把这段代码哈,拿到我们的笔记里面去,那么我们来看看他的一个呃,一个流程。好,打开这里,我们来看看是怎么改写的,先把以前的呢,呃,先把先把这些东西先都关闭一下,Close哦,我们来看一下。好,首先按我们的老规矩,Server呢就相当于我们远程端,Connect呢就相当于我们的本地,本地有个monitor,那我们看改写的在哪里呢?其实改写的地方并不多,主要是把接口这个地方改了,你看状态仍然是我们上午写的那几个状态,对不对?好,然后呢,有销售完毕的状态啊,这个这个是销正在销售的状态,这个是销售完的状态,这个是winner的状态,就是呃,买完一个东西过后呢,他可以怎么样,呃,获得一个奖励。
02:31
啊,这边UN的状态也有啊,Hascon就是呃,插入了一枚硬币的状态也有,好这些都是一样的,那不一样的地方是哪里呢?啊,就是这个地方不一样了,大家看我这里呢,写了一个接口。啊,大家看我这里写了一个接口,看到没有candy machine remote,我继承了remote。那么这个remote里面呢,我去实现了三个方法,就是说我这一个服务有三个方法,一个是get location get count get。
03:10
STEM,意思就是说我们可以通过这个干什么呢?可以看我目前监控是哪个远程的机器。它有多少颗糖,它的状态是什么样子的?这是我的接口,那实现根据上午我们讲过,你这个接口呢,是要被实现的,在哪里实现呢?显然我们在candy。Machine实现了,大家看你这里呢,我们实现了candy machine remote里面呢,把它的这几个方法实现了,比如说像。这个这个get,这个get location。对吧,Get还有一个get状态,这些是我要去实现的,呃,这个方法这是糖果机的,那这个写完以后呢,老规矩,写完了接口和服务过后,我们要去注册,那我这写一段代码注册它看这里啊,我们一样可以来继续注册。
04:05
你看这里,诶,我们这个地方有candy,我怎么注册的呢?大家看这个代码。干什么?我先拿到当前的一个机器对不对,然后呢,我跟一个叫6602的端口进行一个注册,注册的是什么呢?注册的是一个叫candy machine这一台机器的一个服务,那这面呢,为了让同学们看到代码有变化,我故意将当前这个机器的状态改成了一个插入硬币的状态,并且调用了一下旋转它的手柄让他出膛。哎,然后呢,我就提示一下哦,服务端有两台机器啊,我这应该只有一台啊,目前我只有一啊,我看看我是监控了一台,这服务器端两台糖果器,应该我这只有一台。我这只监控一台啊,如果说两台我可以再加一台就行了,那么这在6602上监听,就是它这个远程监听了,那么待会呢,我会用这个客户端去访问你的状态。
05:10
就这个这个你你你可以把这个看成是美国的,或者是这个这个其他其他城市的111台这个平一台这个呃,糖果机,但是这个糖果机呢,它已经可以提供远程的访问接口了。对好,这个呢,我们来把它跑一下啊,先让这个注册成功,这次呢,我今天听的是6602,好,我运行一下先,同学们。代码并不难,同学们并不难啊,我运行一下。好,这边代码有问题,代码有问题是因为我们这边还有些代码没调整,就是这边啊,好来找一下吧,是这边有些东西我要调整一下,好先把它删掉。最好的方式呢,你这样去调,当哪个地方有问题,你先把这个import的部分先删掉,删掉过呢,我们重新引入啊,重新引入好,引进去的时候咱们选择。
06:08
A。这个地方我们看一下。啊,我们看看哪个地方是需要,诶这边有那一个个都都把先删掉。好,我这里用的是接口,看到没有,诶用的人家的接口。好,这是我们remote candy service的一个接口,好引进去这就没事了,然后找到我们的monitor monitor里面呢,它也用到了,就是远程你写的这个接口,Remote这个接口肯定是要通用的,上午已经讲过了,再引入一下好DEMO就没没毛病了,好,现在呢,我回头先启动我们的哪个呢,就是这个远程的。就现在我们要先启动远程的,就这块儿。诶,就是先把这这个remote远程的这个Mar给启动起来,然后呢,我用本地的监控机,通过这个代理,就是RMRI这个代理去访问我们那些get location啊啊get呀,那些那些方法,看看能不能拿到就行了啊好同学们,我们先启动一下,启动之前先注册来走一个,大家看啊,我现在有十颗糖。
07:15
有十颗糖,然后呢我塞呃,加入一个硬币,然后呢,干什么呢?然后把它那个处理一下这个机器的这个,呃,机器我是怎么设置的,大家看机器的名称十个堂都有了啊呃,这是我这台机器,好启动运行。好,运行过后呢,我们看一下现在应该是注册应该是成功了吧。哦,跑一下。啊,有点慢啊,第一次有点慢这边。哦,这边又出了一个问题啊,又出了一个问题,这是怎么老出这个问题。好。这个地方我们再重新来注销一下,有时候因为这个网络啊,网络原因。看看,真是看看这本。为什么老是这样子,要重新改一下?
08:04
诶。好,再重新来一下。好,再起一下看看。6602看看这次行不行啊好,这次起来了啊没问题,现在呢,就说现在我这边远程的有有个糖果机干什么呢,你插入了一个硬币,然后呢,你旋转了一下手柄,诶出膛了。所以这个糖一一颗candy candy有糖嘛,水果糖啊,滚出来了,然后呢,这应该是一台啊,目前我只有一台。好,现在有一台过后,我远程来进行一个监控,我看看能不能监控到,注意这是我的远本地的,本地的,那本地我怎么来监控的呢?大家看到我呢。通过加入了一个远程接口。啊,这个接口就是相当于是大家共用的一个接口,然后呢,我把这个接口啊给加进去了,加进去我把它加入到我的这个管理的列表里边,然后呢,我运行的一个打report,看看我远程监控的地方啊,这些是不是都看得到。
09:08
好,这是这是我的一个本地的,就是本地本地的一个监控监控器。啊,监控机啊监控机,那监控机我怎么调的呢?我在这里调了一下,你看我怎么调的,我先用这个命名服务,找到我要监控的那一个服务,对,然后呢。把这个拿到的远程拿到的这个东西,他返回的就是他这个通过这个服务就可以拿到我们远程的一个机器了,然后加进去,加进去过后呢,我这里调了一下它的。呃,这个情况应该说这边我应该看到远程机器的一个具体情况,看能不能看到,就在这里哈,让一下。那么让一下过后呢,我们看这边它会打出一个报告啊,他说你远程这个机器的地址是呃,Candy门一现在呢有九颗糖,现在有九颗糖,然后呢,呃,现在处于一个准备销售的状态,这跟我们刚才在这改写的状态应该是一致的,哪里呢?大们看这里,我们再去注册一个服务的存看。
10:16
我们这个地址就是candy me1,然后呢,它本身有十颗水果糖,我插入一个硬币,并且出膛了,所以这边呢,就监控到了,那整个这个监控流程。整个监控流程我们是怎么实现的,就是通过这一个r mi的一个机制来实现的,好这个呢,我们就把它称之为远程代理模式,远程代理模式好,那关于远程代理模式呢,我们就先聊到这里,我们把笔记给大家补一下啊好,我们看看刚才远程代理模式它是一个怎么样子的流程,好就是是用远程代理我们。来实现了这个这个机制啊好,我把它给大家写一下。
11:04
标题三,我们项目的结构呢?是如此这般的。哎,如此这般,这是我们的这个图,我就拿过来了。那有了这个图以后呢,我们根据这个图,我们来编写了代码的实现啊,代码实现啊,代码实现好,代码实现呢,具体的我就没有办法啊,就是一一行一行的给他说了啊,我们就把这个结构拿过来看一下就行了。啊,这是我们代码实现的一个结构,然后呢,我把代码给大家放过来,哎,就是这段代码。就是这段代码啊,这段代码在这也有,我就不啰嗦了,直接把它扔过来,同学们呢?呃,后边用到这个模式的时候,可以把代源代码拿过来进行一个参考,好,这是我们讲的远程代理模式的一个实现机制,截取一段视频。
我来说两句