php實現(xiàn)多用戶共享數(shù)據(jù),類似jsp的application---ATHER Shu(A.S)的Bl
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
需求:想要采用AMFPHP實現(xiàn),多個flash端push數(shù)據(jù)到php server,這些數(shù)據(jù)都能保存在server端并且被多個flash端都能訪問到,即類似jsp中的application。 結(jié)果發(fā)現(xiàn)php中并未有提供application,而只有session,而session只是代表一個用戶會話,而且用戶關(guān)閉瀏覽器就失效,既不能實現(xiàn)persistence,更不能實現(xiàn)多用戶share。 為什么php沒有提供application呢? 關(guān)于此,給大家推薦一個好文以加深理解: PHP沉思錄--工作模型:http://www.bloggern.com/1557.html 1、一開始想用php server端類里面寫個static變量,結(jié)果行不通。 class TestStatic { private static $i = 0; function getI() { self::$i++; return self::$i; } } 結(jié)果用amfphp browser查看,每次都返回1。 引申開來,普通php中也無法用static來實現(xiàn)多用戶共享數(shù)據(jù)。 <html> <?php class TestStatic { private static $i = 0; static function getI() { self::$i++; return self::$i; } } echo "i的值是 ".TestStatic::getI(); ?> </html> 以上程序是沒什么實際意義的,每次都返回1。 原因應(yīng)該很簡單,因為php是個純解釋性的腳本語言,每次瀏覽器去訪問一個php文件,都會重新解釋一遍該php文件,一旦解釋完成就清空全部此過程中產(chǎn)生的數(shù)據(jù)、資源等,因此靜態(tài)不靜態(tài)只是在這個解釋的過程中才有效果,一旦解釋完成,就沒有任何意義了。 同時,AMFPHP中“每Call一次Method,一個新Object Instance產(chǎn)生?!?BR>來源:Luar's Flash Playground - AMFPHP在Persistent Layer探索 2、sesstion行不通,原因前面有講。 3、那就只有保存文件或者保存數(shù)據(jù)庫咯。 3.1、搜到個好帖子,有個哥們寫的用文件的方式實現(xiàn)多用戶共享, php自寫application功能相當(dāng)于asp中的application 3.2、帖子中也有人提出用mysql的memory表實現(xiàn)內(nèi)存共享,這個對于jsp類似的application對象完全可行,當(dāng)然這個可能會隨時崩潰,mysql每次啟動都會清空數(shù)據(jù),只留下一個空表。 關(guān)于memory(以前叫heap引擎)的一些資料: Mysql Memory引擎的簡單應(yīng)用 Mysql的內(nèi)存表(Memory engine)的問題 4、另外搜到了篇文章: 采用memcache緩存,不過這需要安裝memcache擴展。
MYSQL內(nèi)存(MEMORY)表與Memcache訪問速度測試。 該文章在 2012/6/7 8:53:45 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |