粉丝51获赞264


同学们大家好,欢迎参加这个 git 系列课程的学习,那么这节课呢,我们来继续学习这个 gipc 编程啊, 在前面课程中呢,我们其实已经给大家介绍了这个 gipc 编程的一个基本的使用方法啊,我相信大家呢,在通过全面课程的学习呢,应该对这个 gipc 编程呢,哎,应该有了一个基本的入门, 但是事实上呢,这个 gipc 啊,他实际上给我们提供了四种变成模式啊,四种通讯模式,我们来看一下这四种啊,通讯模式分别是哪四种?哎,我们这节课呢,来给大家做一个整体上的介绍,那么后面课程呢,我们来一一给大家介绍每一种模式的使用方法。 那么这四种模式中呢,首先一个就是最简单的一个模式,或者我们喊他叫做什么叫 superfc, 也叫音乐模式叫, 这是最简单一种,也是最常见的一种。那么在这种通勤模式下呢,哎,一般都是我们客户端发起个请求啊,然后呢啊,一直等待啊,然后呢服务端收到这个请求之后呢继续去处理,然后把这个结果返回给我们的客户端啊, 就是一个分别对应一个什么呢 request 啊,然后呢得到一个 reply 或者是一个 response, 就这么简单,你比如说我们要计算呃,三加五等于多少哎,然后把三加五传到服务端,哎,服务端接收到三加五,然后计算一个结果等于八,然后再把这个八返回来, 这就是一个非常简单的模式啊,服务端请求客户端响应,就这么简单。好,那么第二种方式呢,那就是服务端数据流模式,哎,我们可以把它叫做什么?叫做 server side 的是追命 rpc。 那么这种方式是什么样的?这种方式就是客户端发起发起一次请求,然后呢服务端可以连续的返回一个数据流 啊,他不是一次响应,而是连续的把数据发到我们客户端来。你比如说啊,一些案例,比如说我们说客户端向服务端发起一个股票代码,然后呢服务端持续反馈该股票的一些实时数据啊,比如说他的价格的波动,是吧?他的成交量啊,就是因为他是在不断的这个变化的啊, 然后服务端把这些变化全部通过牛的方法啊,返回给我们的这个客户端,我们客户端呢就会远远的收到这个服务端发回来的结果,他不是一次性发锁,而是连续的发锁。 你比如说我们一样,我们如果客户端发起个请求,向服务端申请一个文件啊,这个文件比较大,对吧?他不可,服务端不可 一次性把这个文件全部一下子就发过了。那服端也是一点一点的把这个数据中啊,把这个文件中的数据读出来,然后呢连续的通过牛的方式,把这些数据啊一点一点的返回给我们客户端啊,我们客户呢,最终把这些数据存下来,就得到一个文件, 这种我们也把它叫做什么呢?叫做服务端数据流模式。好,第三个呢就是什么?就是客户端数据流模式,我们把它叫做什么呢? climate side, streem、 rpc。 那么这种方式呢?和服务端方式就反过来了,对吧?啊?我们是客户端持续的向服务端发送流数据啊,然后呢在发送结束之后呢,有服务端返回一个响应。 你比如说啊,我们啊扣端有多个监控摄像头数据啊,然后呢,我把这些数据实时的持续的上传到服务器 啊,由服务端去处理啊,这种方式我们可以把它叫做客户端数据流模式。同样的,如果我们客户端要上传一个文件,上传一个大文件到服务端的话,那么我们也可以采用这种客户端数据流模式, 把这个数据在我们客户端一点一点的读出来,然后呢把它发送给服务端,有服务端去处理他啊,对不对啊?然后呢,发送结束之后,好,客户端服务端再做一个响应啊,这就是客户端数据流模式, 其实就是哪边的数据多,哎,我们就把哪边啊,就叫做哪边的数据流模式,是吧?哪边啊就得使用数据流模式, 但是如果你数据少,那我们就可以使用简单模式,就是三加五传过去,然后返回一个八,这两边数据都非常少,都非常少,一次性请求就可以完, 对不对?但如果数据多啊,服务端的数据多,那么就使用服务端数据流模式,客户端的数据多,一次穿不完,那么就使用客户端数据流模式,很简单。好,然后呢,还有个就是双向数据流模式,叫白迪尔克罗斯瑞明 apc。 那,那这就是说,那这种双向数据流模式,那就是说既有客户段数据流,也有服务段数据流,是不是啊? 这种方式呢?那就是服装和客户端的数据数据都比较多啊,两方面都是一下子穿不完的,都可以,都需要持续转速,你比如说啊,在这种情况下,客户端和服务端都可以向对方发送数据流啊,你比如说常见的就是聊天机器人 啊,聊天记事件,我客户端可以不断的向服务端发送我的绘画啊,发送我的聊天内容,对吧?那服务端 也会持续的给我们啊,服扣端返回啊,这个聊天的内容啊,这样双方都是在不断的这个传输数据的,是不是啊,啊,不是说我扣端啊,只发了一句话我就结束了啊,服装也不是说 只发一句话就解说,因为你两者之间在聊天啊,你们这个聊天肯定是一个持续的过程啊,两边都有不很多话要说啊,所以两边都要使用数据流模式, 所以呢,我们把它叫做双向数据的模式,这就是 dipc 提供的四种通讯模式, 那么至于使用哪种通讯模式呢,那就要根据我们实际的这个应用场景来决定啊,这四种通讯模式呢,哎,我们在后面的课程将会啊一一给大家详细介绍, 给大家提供相应的例子,这样的话,我们以后就可以根据我们的这个讲解呢啊,来善于使用我们的这种啊,这四种模式中的任何一种,对吧? 好,那么关于这个 gipc 呢通讯的四种模式呢,我们就先给大家整体介绍到这啊,后续课程我们再一一展开给大家讲解, 那么这节课我们就先讲到这,如果同学们想获取更多学习资料,欢迎访问我们的啊,官网门费电看我或者周哥叫 id 点 coming, 欢迎通过 qq 三幺七九零八七九零,同学们,同学们,我们下次再见,拜拜。

大家好,在上一个视频中,我和大家分享了 g i p c server 的设计, 所以这个视频我们来看一下 grbc client 的设计。我现在打开这个类似 grbc sdk client, 它继承于 grbc client, 然后 grbc client 再继承于 rbc client。 我们先看他的一个构造函数,这边的话调用了一个瑞士,然后调用 file 的一个构造函数,然后执行一例的方法,这边就是把等待 初始化状态变为了已初始化,完成这个状态。在一个 g r p c 卡上的创建之后,他首先会调十大的方法,我们来看一下其中的逻辑。第一个是判断他是否已经开始了,如果 已经开始就直接 return, 然后创建了一个现成词,这个大小为两个,分别作用于一个连接 event, 然后一个同事加上健康检查的一个疑问特这里的话会从这个对列里面去拿到这个连接事件, 然后做相应的一个连接通知。下面这个的话,第一个是主设施的是时间,然后拿到一个连接上下文 等于闹的话,就判断当前的时间和上一次激活了时间,如果大于这个年间 cable new 时间,说明这个已经过期了,我就需要做健康检查,如果这个是不健康的,在这里的就要判断一下状 是否等于关闭,如果关闭的话,这个任务也就不需要做了,所以直接不瑞克最终就会跳出这个循环,在这里呢要判断这里状态能不能变更为不健康,如果 能成功的话,这边就溜了。一个重连的 context, 这里拿到一个重连的 context 之后,会对 server in four 进行判断,如果这个 server in four 等于空的话,就说明你需要选择新的节点, 也就是在这里这个音符是一个闹字,也就代表你当前这个节点是一个失败的节点,所以他需要去选下一个节点。如果这那个舍不得音符不等于闹的话,就要判断这个舍不得音符是否还在。 在这个服务列表上面,如果不在的这边也是要把它制空,让他可以选择下一个节点,在的话就是 对它端口进行重新复制,然后 serve in four 还是那个原先那个,这样呢?对 serve in four 这个信息进行重连,我们来看一下这个重连的逻辑。在这边的话,第一个是要判断 这个是否已经变更成功了,就是能不能转移到下一个节点。在这个微尔循环里面,最关键的操作就是连接 这个师傅返回一个新连接,如果这个连接不等于唠的话,我这边就会把当前连接付给这个新连接,然后把 rpc 的状态设置 思维运行中,然后会添加一个连接 event, 这里的连接事件是一个已连接事件,在他这边 获得到新的连接之后,对原先的这个连接进行判断,不为空的话,我这边就关闭连接,在关闭连接里面也会添加一个 连接事件,这个连接事件就是一个断开连接,接下来就判断这个 g i p c 看了是否关闭,如果关闭的话就关闭当前的连接, 如果这边发生异常的话,这个重连次数就要加一,让这个重连次数对我这个服务列表的一个个数举于等于零,就说明当前这个服务列表里面的地址都已经连接过了,这个从事就会 加一,加一的话就代表这边会休息更长的时间继续去重连,重连的逻辑我们已经看完了,接下来我们继续往下看。第一个是获取了从事次数, 然后随机挑选了一个 service in four, 然后连接这个 server, 如果有异常的话会进行这个从事。刚才我们说的这个从事的话是在定时任务里面 和这个从事是在主逻辑里面,当客户端连接到 seve 之后,把这个状态改成运行中,然后发布了一个已连接的 连接事件,如果这个 sever 等于 no, 就说明你连接失败,这边就一步的去连接 sever, 这里 设置的连接重置的一个请求憨的,这个我们后面会说的,接着的话也是设置了一个请求憨的。现在我们来总结一下 rpc 克兰的的作用,主要有两个任务,第一个任务是 连接事件的一个处理,第二个任务是应重连或者健康检查的事件,然后当完成这些事件之后, 他会暴露一个方法,由此类去实现此类需要去实现这个连接这个 sever 信息 的逻辑。接下来我们就来看一看此类这个逻辑。第一个先是根据 server 的应付信息和一个 rpc 的一个端口偏移来得到真实端口,然后创建了一个 message 的 channel。 cirl 创建之后就会做一个 service check, 这边就会发送一个 service check 请求,发送 service check 请求如果失败就关闭这个 cirl, 如果成功的话, 从这个 seven check 响应中就能获得连接 id, 然后把这个连接放入在连接 中,接着又建立了一个流式请求,然后去发送一个连接 stop app 请求,关于这边的 seven check 请求和这个连接 stop 请求。在上一个 g i p c server 的一个视频中, 我们就已经提到过这一点了,大家可以去看一下。在下一个视频,我将把 sever 和 coland 端的一个连接先串一遍,然后来介绍一下长连接的一个管理,这次我们就分享到这里,下次我们再见。

啊,你看元神 pc 端游戏突然爆错,代码出现,下面这个咋办呢?文加 i 打开设置,选择应用,选择安装的应用,在搜索框搜索下面这个应用,也就是下面这个很长很长的名字的应用, 然后咱们选择卸载,接着在桌面右键点选元神客户端的快捷方式,选择打开文件所在位置,再弹出打开的文件夹里,找到这个这个这个叉六四这个应用程序,然后双击并完成安装,接着再尝试打开 pc 端的元神,现在应该可以打开了吧,这里是巅峰玩家,咱们下期见。
