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 編輯過 |
關鍵字查詢
相關文章
正在查詢... |