Apr
29

PHP服务端推送技术Long Polling

Long Polling与Polling概述
服务端推送技术应用越来越普遍,应用范围也越来越宽广,技术解决方案也越来越成熟且丰富。很多SNS网站的chat功能就有用到了Long Polling技术。比如fackebook, kaixin001。

Long Polling原理其实很简单,也很讨巧。与Polling相比,Long Polling客户端也许不会马上收到来自服务端的响应,需要等待一些时间(直到有新消息,或者连接timeout了等等)。同样的,客户端也不再需要定时向服务发送请求了,而是直到收到服务端响应之后,或者连接丢失之后,客户端接着马上请求客户端。这里,我打个比方,传统的Polling一般是由C向S 询问:”有我的信件吗?”。S接到询问之后,会立即查询,并且把查询结果告诉C,不管有没有C的信件,要码回复:”嗯,你有X封信。”,要码回复:”没,没有你的信”.而Long Polling更像是这样,C向S发出询问:”有我的信件吗?”,S开始查询,如果有则回...

共0条评语»
Apr
29

php操作内存,共享内存,基于内存的消息队列操作

php作为脚本程序,通常生命周期都很短,如在web应用中,一次请求就是php运行的一个周期,请求结束则生命周期截止。所以php在处理需要共享的资源时,一般会将共享数据保存在数据库或dbm之类的文件中,再者就是利用内存实现共享。你可以选择已有的工具辅助你,像memcache;也可以自己编写代码访问操作系统的共享内存段。


php中对共享内存段的操作有两组函数:System V IPCShared Memory。其中System V IPC系列函数能够更方便的操作数据,无需像Shared Memory那样必须自己掌握读写时的偏移量、长度等,也不用序列化/反序列化来回转换(因为Shared Memory函数只支持字符串格式的数据参数)。但...

共0条评语»
Apr
24

使用Jexus+Mono在FreeBSD上搭建asp.net web服务器

前言:如果要谈起如何搭建asp.net运行环境,我相信很多人会想到使用Windows Server系统和IIS来搭建,不可否认,asp.net是微软出的东西,当然用微软的系统搭建最合适了。如果你又想使用asp.net,又想使用FreeBSD,那么是不是就行不通了呢?答案当然是否定的。因为我们有Mono,有了Mono,asp.net就可以运行在非Windows系统下了。

  什么是Mono:Mono是.NET Framework 的一种开源实现。Mono项目将使开发者用各种语言(C#,VB.NET等)开发的.NET应用程序,能在任何Mono支持的平台上运行, 包括Linux, Unix。Mono项目将使大家能开发出各种跨平台的应用程序, 并能极大提高开源领域的开发效率。作为一个有机的.NET整体, 它包括一个C#编译器, 一个公用语言运行时环境, 以及相关的一整套类库,他甚至还包括IDE、调试工具和文档浏览器。Mono项目的网址是:http://www.mono-proj...

共0条评语»
Apr
23

mongodb支持php安装

windows下直接去下载dll就可以了。
官方文档: http://www.mongodb.org/display/DOCS/PHP+Language+Center (适用与*nux).
这里就说freebsd环境(有网上说需要在高于freebsd7上才能安装)。
关键用php的pecl. (在php安装目录bin目录中。如果没有pecl,可以查下用pear扩展安装)。
执行:
pecl install mongo

接着:
修改php.ini
加入:
extension=mongo.so

这里说下:
1.如果安装了zend
只需要修改 Zend/etc/php.ini
会自动同步修改到 php安装目录中的 etc/php.ini

2. 注意。 extension_dir 值更改为 "/usr/local/php/lib/php/ext...

共0条评语»