• 2014-03-23

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

    Views: 23720 | No Comments

    如果你的网站能支持二维码登录, 用户打开手机扫描一下, 网页上就立即变为已登录状态了, 是不是很酷? 像腾讯的微信, 手机淘宝等, 都支持用手机扫描二维码登录 Web 版, 极大的方便了用户. 这项技术不仅能增加网站的用户体验, 也是把传统的 Web 端和新潮移动端结合起来的重要手段.

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

    Continue reading »

    Posted by ideawu at 2014-03-23 16:15:12 Tags: ,
  • 2014-03-20

    各种 Comet 技术优缺点对比

    Views: 20980 | 8 Comments
    script tag iframe ajax websocket
    polling 低效, 可以跨域 / 低效, 无法跨域 /
    long-polling 中效, 可以跨域 中效, 无法跨域 中效, 无法跨域 /
    streaming / 高效, 无法跨域 / 高效, 兼容性差

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

    script tag long-polling

    这是最通用, 浏览器中兼容最好, 使用最广泛的方案, 包括微信网页版等知名网站都使用本方案.

    iframe streaming(forever iframe)

    本方案虽然效率好一些, 但无法跨域. 另外, 从 Chrome ver.31 起, 一个浏览器只能向一个域名发起唯一的一条连接, 所以, 如果你的网站打开了多个 tab, 那么只能有一个 tab 收到服务器推送, 其它 tab 是收不到的!

    Posted by ideawu at 2014-03-20 13:43:04 Tags:
  • 2013-11-11

    初学者的 Linux 安装 Nginx PHP fpm 配置教程

    Views: 51315 | No Comments

    网上的很多 Linux 操作系统下安装 Nginx + PHP 的教程都很老, 而且各种依赖, 对于初学者来说比较容易混淆, 所以, 我重新写了此篇博客, 用于介绍最简单的 Linux 下安装 Nginx + PHP 的方法.

    此文会经常更新, 保持与时俱进. 如果你不是在 ideawu.net 网站看到本文, 请访问 ideawu.net, 阅读最新的版本.

    -------------------2016-12-22 更新----------------------
    现在, 我建议你使用 CentOS 6.x, 然后用 yum 来安装各个软件.
    --------------------------------------------------------
    

    Continue reading »

    Posted by ideawu at 2013-11-11 23:25:46 Tags: ,
  • 2013-09-05

    150行C代码的comet服务器

    Views: 44010 | 39 Comments

    Comet 技术就是常见的 Web 服务器"推"技术, 用于向网页实时地推送数据. 最常见的 Comet 技术应用在网页聊天, 当然还可以应用于很多的方面, 如微博更新, 热点新闻推送, 股票即时行情等等, 甚至是网页游戏!

    Comet 技术如此重要, 但市面上并没有真正流行通用的 Comet 服务器和解决方案, 比较知名的互联网公司大多是自己开发, 或者基于开源服务器进行二次开发, 例如基于 Jetty(一个开源 Java Web 容器), 而 Facebook 的聊天系统的 Comet 服务器是基于 Mochiweb(一个开源的 Erlang Web 服务器).

    当然还有比较知名的以 nginx 模块形式出现的 nginx-push-stream, 但根据实际使用经验, 这个模块无法稳定支撑 10 万个并发连接, 更别谈百万同时在线了. 这也是这个模块为什么没有被普遍大规模应用的原因.

    Continue reading »

    Posted by ideawu at 2013-09-05 21:42:36
  • 2013-06-28

    nginx-push-stream-module 笔记

    Views: 34260 | No Comments

    nginx-push-stream-module 模块可用于 comet, 服务器向浏览器实时推送消息. 这个模块功能和稳定性还不错, 只是没考虑和外部系统的接口, 所以扩展性比较差. 例如权限验证, 连接的建立和断开等基础信息和外部共享等, 都缺失.

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

    连接建立事件

    ngx_http_push_stream_subscriber_handler();
    

    连接断开事件

    ngx_http_push_stream_cleanup_request_context();
    ngx_http_push_stream_worker_subscriber_cleanup_locked();
    
    Posted by ideawu at 2013-06-28 11:09:46 Tags: ,
  • 2013-06-04

    JavaScript 类/函数继承最佳实践

    Views: 28699 | No Comments

    JavaScript 没有像 Java 等面向对象语言的 class 关键字用法, 和 class 最像的就是 function 了. 下面的代码相当于在 JavaScript 中定义了一个类:

    function Base(arg){
        var self = this;
        self.base = 1;
        self.name = 'base';
    }
    

    如果想新定义一个类 Child 继承 Base, 怎么办? JavaScript 又没有 extends. 这时, 就要利用到 prototype 了.
    Continue reading »

    Posted by ideawu at 2013-06-04 11:05:14 Tags: ,
|<<<123456789>>>| 5/28 Pages, 163 Results.