php实现多用户共享数据,类似jsp的application---ATHER Shu(A.S)的Bl
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
需求:想要采用AMFPHP实现,多个flash端push数据到php server,这些数据都能保存在server端并且被多个flash端都能访问到,即类似jsp中的application。 结果发现php中并未有提供application,而只有session,而session只是代表一个用户会话,而且用户关闭浏览器就失效,既不能实现persistence,更不能实现多用户share。 为什么php没有提供application呢? 关于此,给大家推荐一个好文以加深理解: PHP沉思录--工作模型:http://www.bloggern.com/1557.html 1、一开始想用php server端类里面写个static变量,结果行不通。 class TestStatic { private static $i = 0; function getI() { self::$i++; return self::$i; } } 结果用amfphp browser查看,每次都返回1。 引申开来,普通php中也无法用static来实现多用户共享数据。 <html> <?php class TestStatic { private static $i = 0; static function getI() { self::$i++; return self::$i; } } echo "i的值是 ".TestStatic::getI(); ?> </html> 以上程序是没什么实际意义的,每次都返回1。 原因应该很简单,因为php是个纯解释性的脚本语言,每次浏览器去访问一个php文件,都会重新解释一遍该php文件,一旦解释完成就清空全部此过程中产生的数据、资源等,因此静态不静态只是在这个解释的过程中才有效果,一旦解释完成,就没有任何意义了。 同时,AMFPHP中“每Call一次Method,一个新Object Instance产生。” 来源:Luar's Flash Playground - AMFPHP在Persistent Layer探索 2、sesstion行不通,原因前面有讲。 3、那就只有保存文件或者保存数据库咯。 3.1、搜到个好帖子,有个哥们写的用文件的方式实现多用户共享, php自写application功能相当于asp中的application 3.2、帖子中也有人提出用mysql的memory表实现内存共享,这个对于jsp类似的application对象完全可行,当然这个可能会随时崩溃,mysql每次启动都会清空数据,只留下一个空表。 关于memory(以前叫heap引擎)的一些资料: Mysql Memory引擎的简单应用 Mysql的内存表(Memory engine)的问题 4、另外搜到了篇文章: 采用memcache缓存,不过这需要安装memcache扩展。
MYSQL内存(MEMORY)表与Memcache访问速度测试。 该文章在 2012/6/7 8:53:45 编辑过 |
关键字查询
相关文章
正在查询... |