2011-04-12 31 views
3

美好的一天。PHP,javascript,ajax - 2位用戶之間的溝通

我需要這樣做:

當用戶X按下一個按鈕,用戶Y看到的照片。在此之前,用戶Y什麼都看不到

我這樣做是這樣的:我在一臺mysql服務器上創建了一個數據庫,並創建了一個包含照片和標誌的表格。當用戶X按下按鈕時,我發送一個ajax請求並將標誌更改爲相應的照片。用戶Y也每1秒發送一次Ajax請求,以查看是否有任何改變。

聽起來不錯,看起來不錯,工作...它的確如此,但確實如此。當100000個用戶每1秒發送1個Ajax請求時,服務器崩潰。先用mysql服務器再用apache。

所以......我的問題是有沒有這麼多的Ajax請求呢?就像發送頁面某個「事物」,告訴瀏覽器保持相同的套接字並稍後發送圖像?像流一樣的東西,而不是圖像是HTML頁面/圖像/無論什麼。

我知道java applet將是一個解決方案,但我需要一個php(用於服務器端)+ js(用於客戶端)解決方案。

是的,我知道我可能會得到一個「你不能」的答案,但它值得一試。

+0

是否必須每隔1秒?大概3秒鐘?這會立即將負載減少到1/3 - 如果它會以100,000個用戶的速度崩潰,那麼可以使用(理論上)30萬個用戶。 – 2011-04-12 08:29:28

+0

其實我需要在0.5 ... 1的請求是妥協。此外,我還增加了一次清理時間...每隔120秒10秒,用戶不發送任何東西...仍然不好。 – zozo 2011-04-12 08:30:30

+0

你有可能使用HTTPS嗎?我問這是因爲你隨後在每臺客戶端計算機上都有一個安全通道,因此能夠將異步響應發送回客戶端。 – 2011-04-12 08:33:27

回答

2

WebSockets怎麼樣?

編輯。 HTTP keep-alive可能會有所幫助。

+0

呃...這樣的事情。但在我讀到的內容中,他們只在新的瀏覽器中實現......而且我也沒有看到IE ......我懷疑我的老闆會同意這一點。 (即使我會) – zozo 2011-04-12 08:42:04