nginx_Nchan调试

Nchan作为Nginx web服务器的一个模块,实现了发布/订阅服务器。我这里的调试通过HTTP POST请求发布消息,通过长轮训来订阅消息。(还有其他的发布、订阅的方式,比如websocket。)

1、  下载nginx源码http://nginx.org/并解压;

2、  下载Nchan源码https://nchan.slact.net并解压;

3、  进入nginx源码的根目录,运行./config –add-module=”Nchan源码的根目录”;

4、  运行 make 和 make install;

5、  编译成功的nginx一般在/usr/local/nginx文件夹;

6、  配置nginx和Nchan,编辑/usr/local/nginx/conf/nginx.conf文件:

http {
	server {
		listen       80;

		location = /sub {
			nchan_subscriber;
			nchan_channel_id foobar;
		}

		location = /pub {
			nchan_publisher;
			nchan_channel_id foobar;
		}
	}
}
  • 发布对应的url是/pub,主题是foobar,使用post方法进行发布;
  • l使用get方法访问/pub得到目前的主题或通道信息,包括有几个订阅者,共发布了几条消息等;
  • 订阅对应的url是/sub,主题是foobar,使用get方法进行订阅。

7、  配置参数化主题

http {
	server {
		listen       80;

		location = /sub {
			nchan_subscriber;
			nchan_channel_id $arg_id;
		}

		location = /pub {
			nchan_publisher;
			nchan_channel_id $arg_id;
		}
	}
}

订阅和发布的url现在分别为/sub?id=…、/pub?id=… 其中id作为订阅和发布的主题。

8、  长轮训的方式订阅的http get方法需要配置Last-Modified和If-None-Match头来控制接收的消息,如果没有添加这两个头则默认发送主题中的第一条消息,如果想接收最新的消息,则需要配置nchan_subscriber_first_message:

http {
	server {
		listen       80;

		location = /sub {
			nchan_subscriber;
			nchan_subscriber_first_message newest;
			nchan_channel_id $arg_id;
		}

		location = /pub {
			nchan_publisher;
			nchan_channel_id $arg_id;
		}
	}
}

 

转载于:https://my.oschina.net/u/2453016/blog/713653

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值