当前位置: 首页 > news >正文

太原网站建设鸣蝉沁县网站建设

太原网站建设鸣蝉,沁县网站建设,手机微信怎么创建公众号,域名服务器分为4.1 疑窦丛生书接上回。上回说到#xff0c;从HproseClient.java ------------------------- (#0)invokeHandler.handle()开始#xff0c;将经历一个漫长的调用过程#xff0c;下面把整个调用链粘出来#xff0c;先认识下这个庞然大物。( 表示调用到#xff…4.1 疑窦丛生书接上回。上回说到从HproseClient.java ------------------------- (#0)invokeHandler.handle()开始将经历一个漫长的调用过程下面把整个调用链粘出来先认识下这个庞然大物。( 表示调用到 后面 xxx.java表示源代码所在文件接下来的是函数源码 ) HandlerManager.java ----------------------- ( #1 ) HproseClient.java ------------------------------(#2 ) HproseClient.java ------------------------------ (#3 )534行的调用的encode()方法未贴出源码之后会介绍。 HandlerManager.java ----------------------- (#4 ) HproseClient.java ----------------------------- (#5 ) HproseClient.java ------------------------------(#6) HandlerManager.java -------------------------(#7 ) HproseClient.java -------------------------------(#8 ) HproseClient.java ----------------------------- (#9 ) HproseTcpClient.java ------------------ (#10) HproseTcpClient.java ---------------- (#11)到#11暂告一段落让我喘口气先。这段调用步骤太多了耐心看到这里的各位看客都是好样的为你点赞。继续加油。能不能简化一下呢好像不能这段调用一气呵成没有可以跳过的步骤。然调用步骤虽多每个函数源码行数并不多。看来还得耐心分析一下。初看这段调用会被几件事情搞晕1). #0中的invokeHandler.handle(name, args, context) 与 #1中的 invokeHandler(name, args, context)。这2处都出现了 invokeHandler从#0看 invokeHandler是实例对象从#1看invokeHandler又是函数。invokeHandler到底是函数还是实例对象。2). #2,#3又出现2处invokeHandler同名函数这比较容易理解这2个是重载函数因为第3个参数类型不一样。3). #3中的 beforeFilterHandler.handle(stream.buffer, context) 与 #4中的 beforeFilterHandler(request, context) 2处同名的 beforeFilterHandler 晕乎乎分不清它到底是函数还是实例对象。还有后面 的 afterFilterHandler.handle(request, context) 与 afterFilterHandler(request, context)。4). beforeFilterHandler,与afterFilterHandler作用是什么5). #11中首次调用142行fetch() 函数时返回的conn为null,于是send不会调用。这个调用链就会一步一步的返回到最初 #0处。而此时数据还没有发向网络RPC调用结果并未从服务器端返回。也就是说在并未收到服务器端调用结果的情况下#11处的调用链开始逐层返回了而这种返回可能会直接返回到链的调用最初始处即 obj.hello(world)这个结果是啥呢第一回说过在服务器端未返回结果前客户端会处于等待状态直到有数据了客户端才会返回到最初调用处。客户端是如何等待的又是在哪一步等待的6). 最让人头疼的是 #7中afterFilterHandler(request, context)调用完后后面接了一个.then调用即afterFilterHandler(request, context).then(new Func()同样beforeFilterHandler也有类似情况。再沿调用链仔细看一下几乎每处都出现了 .then() 的情况这究竟是何方神圣疑问很多不过值得期待的是这段调用是整个客户端的核心部分这部分弄通了就掌握了客户端关键而其它部分是张飞吃豆芽小菜一碟。4.2 抽丝剥茧接下来一个个分析上面的疑问。1. invokeHandler同名问题。事实上在一个java类里面成员变量与方法可以同名。如下面这个类map方法与map成员变量虽是同名的但java允许这样做。不过同名也给我们带来了困扰看来为了使代码看起来更清晰些需要人为避免一些同名出现。beforeFilterHandler afterFilterHandler也是这个问题。因此4.1中的问题1), 3)一个为实例对象一个为方法。2. #2, #3处的重载。看#2处 invokeHandler它覆盖了基类(HandlerManager)中的函数基类中定义的第3个参数类型是HproseContext但客户端用的是 ClientContext 类型所以定义了一个 invokeHandler的重载函数来接收 ClientContext类型即#3处的代码。看到ClientContext不禁要问难道还有 ServiceContext确实有只不过ServiceContext在服务器端使用。同样服务器端会遇到类似的重载问题。由此看来方法重载虽然好用但用多了也会造成困扰还是慎用吧。当然如果只有几个重载方法还是可以的如果有几十个或上百个想分清楚谁是谁也是有难度的。3. beforeFilterHandler的作用。#3中beforeFilterHandler.handle()调用前先调用了encode(name,args,context)把所调方法的名称参数写入了一个流stream中。beforeFilterHandler.handle()作用是在hprose继续处理stream之前准确的说是在调用方法前( #6中341行 )可以先给用户去做一些处理。默认情况下 beforeFilterHandler引用的是HandlerManager.defaultBeforeFilterHandler 实例对象可通过下面的方法来添加外部handle见下面的代码HandlerManager.java调用addBeforeFilterHandler之后beforeFilterHandler引用已经改变了此时再调用beforeFilterHandler.handle()时首先调用的将是外部设置的那个handle了于是在这个自定义的handle里可以对传入的ByteBuffer对象做额外处理。FilterHandler接口定义如下4. afterFilterHandler的作用。同样的道理对于afterFilterHandler.handle()是指在调用 outputFilter方法后( #6中341行 ),可以由外部做的事情afterFilterHandler 默认情况下引用 HandlerManager .defaultAfterFilterHandler 实例通过下面的方法HandlerManager.java中来改变 afterFilterHandler的引用。解决了 4.1中几个疑问还有2个有待解决一是 .then 问题另外一个客户端如何等待问题先解决 .then问题再来看客户端等待问题。请继续关注下集--何方神圣。
http://www.zqtcl.cn/news/870505/

相关文章:

  • 网站建设教程搭建浊贝湖南岚鸿给力企业网站定制公司
  • 网站建设与数据库维护 pdf廊坊seo关键字排名
  • 十元精品店做网站微信开发网站制作
  • 做乡镇网站地图上搜索不到的公司正规吗
  • 新材料 东莞网站建设多wordpress整合
  • 17做网店这个网站做起多少钱中信建设有限责任公司招标平台
  • 做慕课的网站一线设计公司
  • 官方网站app最新下载陕西建设厅八大员官方网站
  • 个体户可以备案网站吗运营
  • 政务网站模版建一个团购网站
  • 信用网站建设方案软文内容
  • PHP网站开发方向企业宣传片制作公司光年映画
  • 满城住房和城乡建设局网站上海最好的网站是什么
  • 网站建设合作网络营销是什么模式
  • 做个网站怎样做的网站建设刂搜金手指下拉贰肆
  • 颍上网站建设个人租车网站源码
  • 建设银行海外招聘网站顺义公司建站多少钱
  • 医疗公司网站建设项目背景你做的网站可视区域多少钱
  • 韩国做暖暖网站怎么样自己建设一个网站
  • 徐州网站建设4禁止wordpress历史版本
  • 公司网站建设价格wordpress做排行榜单
  • 安徽网站推广营销设计请教个人主页网站怎么做啊
  • 甘肃省酒泉市做网站公司wordpress标签云代码
  • 淘宝客做网站备注怎么写的用手机做网站视频
  • 深圳专业网站建设制作价格低品牌网站建设网站
  • 织梦体育网站模板临沂建站程序
  • 重庆网站设计最佳科技好听的网络公司名字
  • 如何在人力资源网站做合同续签贵阳网站建设搜王道下拉
  • 多个域名的网站北京注册公司流程
  • 网站建站对象定制网站系统