necko体系结构

necko 是mozilla的一个网络模块,主要负责数据的传输。该库被设计为一个插件式的框架,可以很容易的支持新的协议处理。


该库对数据传输这一过程进行了抽象。数据传输是将数据从一个位置搬运到另一个位置。关键点为数据,位置和搬运方式。其用URI来统一的标识位置,用stream抽象不同的数据,用handler channels表示搬运方式。


URI:

uri不用过多说明,就是用来标志位置.


handler & channels

channel是用来处理数据访问的接口,通过channel可以从一个uri读取数据,或将数据写到一个uri。uri和channel是一一对应的,对于任何一个你想进行数据传输的uri,都必定对应着一个channel。

为了从uri获取其对应的channel,我们引入了一个中间层protocol handler layer. 因为uri并不清楚其上的数据传输应该走什么协议。我们通过handle从指定的uri上获取对应的channel.一旦获取了channel,你就可以在对应的uri上进行读或写。


IOservice

我们可以先创建uri,然后寻找uri对应的handle,然后通过handle创建channel,最后通过channel进行数据传输。IOservice则自动化了这些操作,以减轻我们的工作。


stream


necko用stream抽象数据,其提供了一个通用的接口,允许数据来自不同的地方。作为一个用户,你关心的只是我收到了数据,而不用管数据是来自网络,来自内存还是来自磁盘。

数据传输分为同步传输和异步传输。如果初始化了一个同步传输,则需要自己负责数据的读写。如果初始化了一个异步传输,则需要有一个回调函数,系统会在适当的时候将通知发给回调函数。回调函数里面处理不同的通知。这个回调函数我们称为streamlistener.



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值