前营中间件(6) - 组件的接口

      我们在编写组件时,需要利用中间件的一些资源,而我们把操作这些资源的接口全部集中到ZContextAPI中,在我们编写组件中,每个组件的响应函数中,都会传进此指针.所以这个接口对我们来说是非常重要的.对此接口中的许多函数我们前面都有所讲过,我们此文先讨论一下与多播和广播相关的函数.

      广播,在我们的中间件中,发送广播的功能是由组件中实现的,而对应的函数就是PostBroadCastPack,它有两种形式, 一个是以缓存区为源数据,一个是以指令为源数据,我们在中间件的组件中调用此函数后,此中间件下级的所有客户端和中间件都会收到此消息,而下级的中间件又会把此消息转发给其下级的中间件或客户端.注意,广播,我们只向下级发送.客户端通过回调函数,就能接口到此消息了.

      多播,多播相对广播来讲,比较复杂,需要记住客户端的路由信息,然后保存起来,而GetBufferRouterInfo函数,就是取消息缓存区中路由信息的,所以客户端如果想订阅一下多播信息,需要先向组件发送一个请求,在组件的对应此请求的处理函数中,把客户端的路由取出,然后添加到多播中去,添加多播路由是由AddMultiCastSub函数完成的,添加路由后,组件调用PostMultiCastPack函数进行多播的发送,这样订阅此消息的客户就能收到对应的多播消息了.

      以上是广播和多播相关的函数,下面我介绍一下别的函数:

      SubProc:子功能调用,当我们想用到别的组件的功能时,我们就调用此函数,此函数会先从自已所在的中间件上查找是否能此功能的处理函数,有的话,直接调用相应的函数,如果没有,则查找下级中间件,下级中间没有,就检查路由,如果找到合适的中间件和路由,就把请求发送出去,等待应答,此功能相当于客户端的同步请求在组件中的应用.

       ReplyPack:应答消息,这个函数是我们用来构建一个消息发送给相应的客户端,它的lpRouter表达消息到达的对象.其它各种参数是消息的属性,如果我们接收到一个请求,不希望系统构建应签包,可以利用此函数构建一下应答包,在构建之前,先用GetSessionHdrInfo函数,把请求包的各种属性取,然后调用ReplyPack时,把取到的属性写进去,

     好了,其它的函数没有什么特殊之处,可以参考别的函数进行理解.

    比较忙,此部分写得比较简单,我在以后会补些例子,就可以理解了.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值