最新 | 最热门 | 最高评价

+0  轻量级 COMET 服务器 icomet 支持 EventSource(SSE)

Tag: Web | icomet
ideawu 发于 2017年05月17日 14:21 | 点击: 1091 | 展开摘要
最初的 COMET 技术,指的是 HTTP 长轮询,不过,随着时间的推进,许多能实现浏览器即时推送的技术都可被称为 COMET 技术。由我开发的基于 libevent 库的轻量级 COMET 服务器开源项目 icomet,支持主流的浏览器推送技术,并且支持移动端。

最近,在网友的贡献下,icomet 支持了 HTML 5 的 Server-Sent Events(SSE, EventSource) 技术。这项技术也是 W3C 标准之一,详情可见:http://www.w3.

查看全文: http://www.udpwork.com/item/16267.html

+0  HTTP 长连接技术 Comet

Tag: Web | comet | icomet
ideawu 发于 2014年07月28日 08:46 | 点击: 1560 | 展开摘要
人们常常提到"Comet", 或者"Web 服务器推", "HTTP 长连接", 事实上, 他们指的是同一件东西, 可以统称为 Comet 技术. 但是, Comet 技术又不是单独的一种东西, 而解决某一个问题的许多技术的统称. 要解决的问题是 Web 服务器向浏览器实时推送数据, 而解决方案有很多种.

最经典的方案是 AJAX 轮询, 这种方案和"推"技术毫无关系, 只是由于轮询的间隔比较短, 如一两秒, 便给了用户实时的错觉.

新下来是安装浏览器插件, 如 Acti

查看全文: http://www.udpwork.com/item/12828.html

+0  热烈庆祝icomet成为oschina推荐项目!

Tag: C/C++语言编程 | SSDB | comet | icomet
ideawu 发于 2014年05月09日 23:01 | 点击: 1841 | 展开摘要
最近, icomet 项目成为了 oschina 的推荐级项目!

同时, icomet 更新了聊天 demo(立即试用):

美化界面, 更好看了.

增加好友列表, 能显示全部好友和最近联系人.

离线存储消息.

这个 demo 同时支持 Web 端和手机端, 使用 SSDB 作为持久化存储服务, 存储好友列表, 最近联系人和消息历史. 对于想开发跨终端 IM 的同学, 这个项目的代码值得你常常.

icomet-demo: https://github.com/id

查看全文: http://www.udpwork.com/item/12232.html

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

Tag: C/C++语言编程 | comet
ideawu 发于 2014年04月20日 20:49 | 点击: 3414 | 展开摘要
有些项目需要使用”Web服务器推(comet)技术时, 便因为 Web Server 用的是 Nginx 便选择了 nginx-push-stream-module, 但是根据我们的使用经验, nginx-push-stream-module 非常坑, 只适合同时在线几千人的小网站使用. 下面对比 iComet 服务器和 nginx-push-stream-module:

1. 安全和验证问题

nginx-push-stream-module 本身没有安全验证

查看全文: http://www.udpwork.com/item/12151.html

+0  iComet 0.2.2.1 稳定版发布和Android聊天App示例

Tag: C/C++语言编程 | 高性能Web架构 | comet
ideawu 发于 2014年04月15日 09:58 | 点击: 1897 | 展开摘要
这个版本主要是修复了内存泄露的 BUG, 让 icomet 的内存占用更少了,

在之前这篇博客里介绍. 对于一个 1 万并发连接的应用, 只需要占用不到 20M 的内存.

0.2.2.1 (2014-04-09)

新特性:

重构代码

修复BUG:

修复内存泄露 BUG, 确保在 connection_closecb 中调用 evhttp_send_reply_end(2014-04-12)

0.2.2 (2014-03-24)

新特性:

取消内存池, 直接使

查看全文: http://www.udpwork.com/item/12126.html

+0  Libevent HTTP 内存泄露

Tag: C/C++语言编程 | 高性能Web架构 | comet | libevent
ideawu 发于 2014年04月12日 12:11 | 点击: 1912 | 展开摘要
支持百万并发连接的 comet 推送服务器 icomet 刚刚修复了一个内存泄露的 bug, 这个 bug 是因为不正确地使用 libevent 导致的, 无法用 valgrind 等工具检查出来.

这个 bug 的原因是这样的, 当客户端请求到来时, 服务器端调用了

evhttp_send_reply_start();

表示开始向客户端推送数据(使用 HTTP chunked), 最后当 long-polling 结束时, 应该调用

evhttp_send_repl

查看全文: http://www.udpwork.com/item/12116.html

+0  iComet 的一个应用场景

Tag: C/C++语言编程 | 高性能Web架构 | comet
ideawu 发于 2014年04月05日 01:57 | 点击: 6098 | 展开摘要
iComet 是我做的另一个开源项目, 已经有不少朋友将 iComet 应用到了 Web IM, 移动 App 等应用的线上生产环境, 前几天还有一位朋友帮忙开发并开源了 iComet 的 Java/Android SDK.

最近在做一个手机端 App 与桌面 PC 程序联动的项目, 简单来说, 这个软件就是要在手机上进行操作, 并立即根据操作的结果更新 PC 上的程序的响应. 例如在手机上点击了一个按钮, 就要在 PC 上自动打开某个窗口. 其中一个重要的步骤便是从服务器

查看全文: http://www.udpwork.com/item/12087.html

+0  让你的网站支持手机二维码登录

Tag: Web | comet | mobile
ideawu 发于 2014年03月23日 16:15 | 点击: 1265 | 展开摘要
如果你的网站能支持二维码登录, 用户打开手机扫描一下, 网页上就立即变为已登录状态了, 是不是很酷? 像腾讯的微信, 手机淘宝等, 都支持用手机扫描二维码登录 Web 版, 极大的方便了用户. 这项技术不仅能增加网站的用户体验, 也是把传统的 Web 端和新潮移动端结合起来的重要手段.

手机二维码登录网站, 并不是一项多么有难度的技术, 而是多个现有成熟技术的融合. 下图是整个系统的架构示意:

一套手机二维码登录网站的系统, 至少包含这几个问题: Web 端, 浏览器,

查看全文: http://www.udpwork.com/item/12001.html

+0  各种 Comet 技术优缺点对比

Tag: Web | comet
ideawu 发于 2014年03月20日 13:43 | 点击: 3171 | 展开摘要
script tag
iframe
ajax
websocket

polling
低效, 可以跨域
/
低效, 无法跨域
/

long-polling
中效, 可以跨域
中效, 无法跨域
中效, 无法跨域
/

streaming
/
高效, 无法跨域
/
高效, 兼容性差

经过对比, 最终只有两种 comet 技术胜出: script tag long-polling, 和 iframe streaming(forever iframe).

script tag l

查看全文: http://www.udpwork.com/item/11980.html

+0  长连接技术的应用

Tag: C/C++语言编程 | comet
ideawu 发于 2014年02月15日 14:53 | 点击: 3462 | 展开摘要
Web 技术太流行而且太强大了, 以至于我们在开发任何应用时, 都会想到利用 Web 技术. Apache, PHP, Java, HTTP, JSON, … 只需要简单且流行的技术, 就能搭建一个系统.

但是, 对于另一类重要的需要服务器向客户端推送数据的应用, 传统的 Web 技术就不适用了, 因为 Web 的基础网络协议 HTTP 是请求响应模式, 一旦客户端不请求, 服务器就无法将数据推送给客户端. 而如果客户端的请求太过频繁(轮询), 那么就会对服务器

查看全文: http://www.udpwork.com/item/11725.html

+0  nginx-push-stream-module 笔记

Tag: C语言编程 | Web | comet | nginx
ideawu 发于 2013年06月28日 11:09 | 点击: 2941 | 展开摘要
nginx-push-stream-module 模块可用于 comet, 服务器向浏览器实时推送消息. 这个模块功能和稳定性还不错, 只是没考虑和外部系统的接口, 所以扩展性比较差. 例如权限验证, 连接的建立和断开等基础信息和外部共享等, 都缺失.

这里记录几个关键函数, 打算利用 syslog 和外部系统进行信息共享.

连接建立事件

ngx_http_push_stream_subscriber_handler();

连接断开事件

ngx_http_push_

查看全文: http://www.udpwork.com/item/10109.html

+0  网络涂鸦板

Tag: web | comet | jquery
isnowfy 发于 2011年10月03日 23:08 | 点击: 1844 | 展开摘要
之前写这篇文章的时候,就是本来打算写一个有网络涂鸦板功能的web群聊,不过涂鸦板一直是拖到现在才实现,鉴于现在实现的不是很完美就没有把它们合一起了,可以在这里看到效果。

这个网络涂鸦板,是所有人都能看到其他人画了什么,是实时同步的,刷新后就重置了。就是说比如你可以和你的朋友都打开这个页面,然后你绘制的情况,你的朋友也会看到。
注意到网址里其实有个id=1的东西,就是说这个你可以随便写个数字,就相当于创建一个房间了,不同房间的涂鸦板互不影响的。简单来说一下实现吧。
正如开头

查看全文: http://www.udpwork.com/item/6396.html
|<<<12>>>| 一共2页, 13条记录