首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

ngx-push-stream模块源码学习(1)——序言

2012-06-28 
ngx-push-stream模块源码学习(一)——序言一、概述与传统的request-response的web应用模式不同,comet是一种长

ngx-push-stream模块源码学习(一)——序言
一、概述
    与传统的request-response的web应用模式不同,comet是一种长连接(long-held)的应用模式,从而允许服务端主动向客户端推送数据。
    主流的comet技术主要有以下两个分支:

    基于ngx+ngx-push-stream模块可以实现在nginx服务器上扩展出两类终端:一种用于发布,一种用于订阅。订阅者以stream或long polling的方式向nginx channel请求数据;同时,发布者可可将信息以post的方式发送到nginx channel。ngx-push-stream模块则完成二者之间的信息缓存和中转。
三、总体流程
    简单来讲,整个发布订阅过程完成两项工作:
向服务器推送MSG,服务端暂存MSG服务器端向订阅者推送MSG
    为了完成上面两项工作,通道(channel)应运而生。它是发布者和订阅者之间的桥梁。发布者将MSG以post的形式发送到某个通道上,订阅者则以GET的方式从channle获取MSG。由此channel的重要性可见一斑。
     通道的发布者一侧,支持http POST(发布信息)、DELETE(删除channel)和GET(获取channel信息)三种请求;订阅者一侧则只接受GET请求以获取最新MSG。具体来讲,发布者一侧主要完成以下三种功能:
获取channle信息    订阅者数目、缓存信息数目、已发送信息数目等等。。删除channel    清空缓存的信息、通知所有的订阅者、释放channel发布信息    将信息发布到channel上,并向订阅者中转

热点排行