为什么iComet比nginx-push-stream-module更好?

标签: C/C++语言编程 comet | 发表时间:2014-04-20 20:49 | 作者:ideawu
出处:http://www.ideawu.net/blog

有些项目需要使用”Web服务器推(comet)技术时, 便因为 Web Server 用的是 Nginx 便选择了 nginx-push-stream-module, 但是根据我们的使用经验, nginx-push-stream-module 非常坑, 只适合同时在线几千人的小网站使用. 下面对比 iComet 服务器和 nginx-push-stream-module:

1. 安全和验证问题

nginx-push-stream-module 本身没有安全验证机制, 客户端和浏览器可以随意订阅任意通道(channel). 如果想加入验证, 就要使用 nginx + lua 了, 一般的模式是通过 HTTP 访问其它的接口进行验证.

相比较而言, iComet 自带了 token 验证机制, token 通过业务服务器来分配, 业务服务器可以进行业务相关的权限验证, 如账号密码, 好友关系等等. 一旦 token 生成之后, 验证过程不需要依赖第三方, 全部在 iComet 内部, 所以速度非常快.

2. 程序的稳定性和高并发

nginx-push-stream-module 在只有几千个连接的时候性能和稳定性非常好, 不过, 当并发连接增多到几万之后, 这个模块就会频繁出错了, 最常见的两个错误是:

1. push stream module: could not send content header to subscriber
2. push stream module: Don’t have at least one of the mandatory headers: Connection, Upgrade, Sec-WebSocket-Key and Sec-WebSocket-Version

这两个错误莫名其妙, 似乎是共享内存的 BUG, 导致 nginx 子进程不断重启, 我在官方提问, 作者也解决不了.

而 iComet 支持百万并发连接也非常稳定.

3. 功能

nginx-push-stream-module 的目标只是 Web 应用, 但是, iComet 为移动 App 了接口, 可以方便地融合进移动 App 中. 目前, iComet 已经提供了 iComet Android SDK 和 Demo.

Related posts:

  1. nginx-push-stream-module 笔记
  2. iComet 的一个应用场景
  3. 账号系统的两阶段登录和三阶段登录
  4. iComet 0.2.2.1 稳定版发布和Android聊天App示例

相关 [icomet nginx push] 推荐:

为什么iComet比nginx-push-stream-module更好?

- - idea's blog
有些项目需要使用”Web服务器推(comet)技术时, 便因为 Web Server 用的是 Nginx 便选择了 nginx-push-stream-module, 但是根据我们的使用经验, nginx-push-stream-module 非常坑, 只适合同时在线几千人的小网站使用. 下面对比 iComet 服务器和 nginx-push-stream-module:.

comet 服务器 icomet 提供 Android API

- - 开源中国社区最新新闻
支持百万连接和 comet/push 服务器 icomet 日前提供了可用于 Android 移动开发的 Java API - iCometClient4j, 用于实现手机上的消息推送功能. 结合 icomet 的 HTTP endless chunk 模式, 可提供节省电池的长连接服务.. iCometClient4j项目地址: https://github.com/DuoZhang/iCometClient4j/.

iComet 的一个应用场景

- - idea's blog
iComet 是我做的另一个开源项目, 已经有不少朋友将 iComet 应用到了 Web IM, 移动 App 等应用的线上生产环境, 前几天还有一位朋友帮忙开发并开源了 iComet 的 Java/Android SDK.. 最近在做一个手机端 App 与桌面 PC 程序联动的项目, 简单来说, 这个软件就是要在手机上进行操作, 并立即根据操作的结果更新 PC 上的程序的响应.

Facebook 美学转变:从收购Push Pop Press开始

- Brant - 爱范儿 · Beats of Bits
一直以来,Facebook 都遵循着实用美学至上的设计原则,讲究在最简洁的设计中纳入所有必需的功能. 而之所以拥有如此的设计文化,和 Facebook 在初期以 CEO Mark Zuckerberg 为技术主导的团队不无关系. 简洁的蓝白配色在出现伊始的确让人眼前一亮,清新的学院风加上冷酷的极客气息让 Facebook 在短时间内聚拢了极高的人气.

移动环境下push 技术开发__初级篇

- - ITeye博客
其实说白了就是研究androidpn这个开源项目,只因我的本科毕业设计的题目就是“移动环境下push技术开发”,所以起这个作为本篇博文的题目. 既然是初级篇,那当然后面还有进阶篇以及高级篇了,后面等我有时间再写吧. 其实我本来是想等我的毕业设计答辩结束后,再总结,再分享的,可是最近群里很多人整个环境都不会配,所以我就先来个初级篇吧.

微信公众平台:移动推送(Push)平台

- - 天涯海阁|Web2.0Share
之前曾经写过一个文章《 移动互联网的未来:基于情境/兴趣的推送》,至今我也觉得这个在未来会是有着巨大想想空间的移动生活方式. 之前其实也有不少初创企业在Push这个领域努力,不过效果却都不好,所以其实本质而言,要构建Push这样的平台,需要吸引大量的内容、媒体、品牌来提供Push内容,而对于内容、媒体、品牌而言,最在意的是这个平台有没有用户,而微信可能已经到了可以去构建这样一个信息推送平台的阶段.

苹果信息推送服务(Apple Push Notification Service)使用总结

- - IT技术博客大学习
标签:   Push   信息推送. 苹果信息推送服务(Apple Push Notification Service),是由苹果官方提供的消息推送服务. 推送形式包括顶部消息条、声音以及badge number()有了APNS,应用程序可在任意状态接收到与程序有关的消息(包括运行状态not running,foreground以及background),由于在大多数情况下,iOS中最多只有一个应用能处于active状态,所以,APNS为应用的交互提供了极大的便利.

nginx配置ssl

- - 邢红瑞的blog
先生成网关证书 ,仿照CA模式.

Nginx安装

- - 企业架构 - ITeye博客
nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好. ububtu平台编译环境可以使用以下指令. centos平台编译环境使用如下指令. 一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩.

Nginx GZip 压缩

- - 开心平淡对待每一天。热爱生活
  Nginx GZip 模块文档详见: http://wiki.nginx.org/HttpGzipModule 常用配置片段如下:. # 压缩比例,比例越大,压缩时间越长. 默认是1 gzip_types. text/css text/javascript; # 哪些文件可以被压缩 gzip_disable.