打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用NGiNX_HTTP_Push_Module实现简单的服务器推送

 使用NGiNX_HTTP_Push_Module实现简单的服务器推送收藏

NGINX_HTTP_Push_Module是一个Nginx服务器模块,可以实现服务器端的长连接和推送(但是推送一次后会结束进程,尚未实现持续的推送)。

http://pushmodule.slact.net可以下载该模块。

如果已安装Nginx,需要重新编译安装Nginx,要用命令"./configure--add-module=/home/hfahe/ngnix_http_push_module"来配置,然后执行make和makeinstall来安装Nginx。

安装完成后,在Nginx配置文件的Server段里添加两个路径配置:

 

  1. location /publish {   
  2.     set $push_channel_id $arg_id;   
  3.     push_publisher;   
  4.     push_store_messages on;   
  5.     push_message_timeout 2h;   
  6.     push_max_message_buffer_length 10;   
  7. }   
  8. location /activity {   
  9.     push_subscriber;   
  10.     set $push_channel_id $arg_id;   
  11.     push_subscriber_concurrency broadcast;   
  12.     default_type text/plain;   
  13. }  
 

 

重启Nginx后,请求http://localhost/activity?id=10000的地址,可以看到浏览器处于请求堵塞阶段。

使用一段Perl脚本来Post数据到publish地址:

 

  1. use LWP::UserAgent;  
  2. use HTTP::Request::Common;  
  3. my $ua = new LWP::UserAgent;  
  4. my $response = $ua->request(   
  5.     POST 'http://localhost//publish?id=10000',  
  6.     Content_Type => 'text/html',  
  7.     Content => 'Server Push'  
  8. );  
  9. my $content = $response->content;  
  10. print $content;  
 

 

运行后,可以看到浏览器已经输出了推送的内容。

如果要完成一个大的消息系统,还需要实现持续的推送机制,另外还需要实现Nginx和后台服务器的交互(或者考虑AgentZh推的Nginx编程,呵呵)。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
脑残式网络编程入门(四):快速理解HTTP/2的服务器推送(Server Push)
一文读懂 HTTP 2.0 之服务器推送
Centos7搭建Nginx+Rtmp/HLS视频直播服务端
nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器
nginx cache试用
nginx rewrite arg 带问号的地址转发参数处理?Nginx重定向的参数问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服