我一直在尋找使用PHP製作實時網站。 (COMET)我一直在尋找很長時間。 (大約一個月)我甚至檢查了一些PHP聊天腳本並在我的網絡服務器上使用,但是我在其中大部分都遇到了一些問題。 (將解釋)PHP&COMET。需要一些指導
到目前爲止,大多數人告訴同樣的事情:PHP不是可以用於COMET的最佳語言。聊天/彗星的例子是最好的。
我在問這個,因爲我想在我的網站上有一些功能,比如允許登錄的人聊天。那就是我需要一個到PHP頁面的活動連接。我也計劃製作一款基於瀏覽器的遊戲,並且活着的連接仍然是必須的!
2年前,AJAX是一件罕見的事情,與Facebook一起閃閃發光。現在幾乎每個人都使用它,並且它成爲Web開發的標準。現在,基於COMET的網站正在增長。 Youtube,Google+,Facebook,EA的Battlelog等等。我相信我應該學會如何使用它。
好的,這是我的問題。 (有些信息在下面是我收集的,而在谷歌搜索的人。不知道他們是正確與否。)
像Python一些語言設計了適合這個工作的特殊Web服務器。我相信其中之一被稱爲Tornado Web Server。開發並配置爲模擬數千個活動連接。我相信Appserv沒有這樣的選擇,但有些人告訴NGINX可以用一個體面的配置來處理它。這是真的嗎?應該做什麼樣的配置?這個工作有沒有PHP網絡服務器?
一些最建議的事情是:
一個。使用APE。
b。使用Socket.IO
c。 Node.js
有什麼辦法可以將它們用於PHP?哪一個是最有前途的?你能給他們一些指導嗎?除了這些還有別的嗎?
我已經使用了彗星聊天腳本。基本上,您一直在查詢數據庫並使用flush()函數向瀏覽器輸出結果,方法是使用usleep()在循環中進行休眠。 (這其中也變得很難理解,所以我將提供一個簡單的代碼)
while(true) { // query database // output the result // flush the browser // sleep for few seconds to lower cpu load }
usleep()
功能基本上摧毀了基於Windows操作系統的我的Web服務器。在基於Windows的操作系統上運行的彗星應用程序依賴usleep()
是否正常?我的意思是,有沒有辦法「睡覺」PHP腳本?無論我做什麼,WIN和UNIX服務器上的CPU負載都會達到%100。
PHP「真的」在這方面薄弱嗎?我應該放棄PHP並專注於其他語言嗎?如果是這樣,你會建議哪種語言? (這種語言應該是有希望的,例如,在HTML5添加之後沒有太多AS3的使用,並且AS3在JS發光時很快就會死亡。)
什麼是WebSync?它可以與PHP一起使用嗎?
請記住,我需要使用COMET做出以下應用:
- 一個聊天腳本,其中在玩家登陸就可以聊天海誓山盟。
- 基於瀏覽器的遊戲。在編碼時我已經使用JSON/AJAX等類似的東西,但爲了接收對手的步驟,我應該提取數據,因此需要一個活躍的連接。 (不要想象高級遊戲,我最好是在講國際象棋這樣的遊戲。)
如果你能給我一個簡短的指導,我將不勝感激。畢竟,我一直在困惑,因爲在互聯網上有很多隨機文章。人們甚至撥打setInterval()
作爲COMET,所以它是一個完整的混亂。
如果你想要做的實時應用,我會建議node.js的:) – Menztrual
http://me.veekun.com/博客/ 2012/04/09/PHP-A-分形的壞設計/給出了PHP的一個很好的總結,P – Menztrual
_Should我放棄與PHP_?你的意思是一般?當然不。使用這個作爲你的主要語言是完全可以接受的,同時使用更適合於任務的其他東西。對於Comet來說,使用一些簡單而輕量的實現線程的東西,並且可以與您的網站的數據庫進行交流。 – halfer