• 2017-05-17

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

    Views: 1669 | No Comments

    最初的 COMET 技术,指的是 HTTP 长轮询,不过,随着时间的推进,许多能实现浏览器即时推送的技术都可被称为 COMET 技术。由我开发的基于 libevent 库的轻量级 COMET 服务器开源项目 icomet,支持主流的浏览器推送技术,并且支持移动端。

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

    在支持 HTML 5 的浏览器中使用 SSE,代码会非常简洁,示例如下:

    var source = new EventSource("http://127.0.0.1:8100/sse?cname=12&seq=1");
    source.onmessage = function(e) {
        document.body.innerHTML += e.data;
    };
    

    e.data 就是服务器推送的数据。icomet 项目源码中带有 demo/web/sse.html 脚本,你直接拖到浏览器里即可看运行效果。

    源码和示例下载:https://github.com/ideawu/icomet

    Posted by ideawu at 2017-05-17 14:21:01 Tags:
  • 2014-07-28

    HTTP 长连接技术 Comet

    Views: 14844 | 3 Comments

    人们常常提到"Comet", 或者"Web 服务器推", "HTTP 长连接", 事实上, 他们指的是同一件东西, 可以统称为 Comet 技术. 但是, Comet 技术又不是单独的一种东西, 而解决某一个问题的许多技术的统称. 要解决的问题是 Web 服务器向浏览器实时推送数据, 而解决方案有很多种.

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

    新下来是安装浏览器插件, 如 Active-X, 或者使用 Flash 插件, Java Applet 插件等, 这些方案都不通用, 兼容性不好, 也不能被称为 Comet 技术.

    根据实践, 真正的 HTTP 长连接方案主要有: Script Tag Long-Polling, Forever Iframe, WebSocket. 这些方案在我的另一篇文章"各种 Comet 技术优缺点对比"有介绍.

    对于开发者, 为了快速和方便的开发, 应该选择一个支持 Comet 技术的 Web 服务器和一套 JavaScript 库. iComet 就是这样的一套解决方案.

    iComet 开源项目: https://github.com/ideawu/icomet
    iComet Demo: http://www.ideawu.com/icomet/chat/

    Posted by ideawu at 2014-07-28 08:46:23 Tags: ,
  • 2014-05-09

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

    Views: 26780 | 4 Comments

    最近, icomet 项目成为了 oschina 的推荐级项目!

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

    • 美化界面, 更好看了.
    • 增加好友列表, 能显示全部好友和最近联系人.
    • 离线存储消息.

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

    icomet 项目主页: https://github.com/ideawu/icomet
    icomet-demo: https://github.com/ideawu/icomet-demos
    SSDB: https://github.com/ideawu/ssdb

    Posted by ideawu at 2014-05-09 23:01:03 Tags: ,
|<<<1>>>| 1/1 Pages, 3 Results.