2012-04-24 27 views
0

我相信這是很多人想要做的事情,但在我找到的任何地方都沒有清楚解釋。爲Penny拍賣網站創建一個PHP Socket服務器心跳

我正在爲客戶開發一分錢拍賣網站,我需要建立它,以便每個人都能看到在用戶之間同步的準確拍賣計時器。通過研究,我得出了我需要建立套接字服務器的結論。

我對此知之甚少,希望有人能夠解釋如何設置此功能。

+0

這是官方的php socket文檔,它將是一個很好的開始。即使你不明白這一切,但它會向你介紹所有的功能PHP的提供http://php.net/manual/en/book.sockets.php – dm03514 2012-04-24 12:54:02

+0

JavaScript將工作罰款的東西像易趣,但與便士拍賣它的不同,因爲最後幾秒的出價將時間增加了特定的秒數。所以當有人出價並且計時器從5秒到15秒時,每個人都需要看到這一點。 Ajax請求每秒都會在服務器上很難修正? – KyleVan 2012-04-24 13:39:09

+0

我看到問題了。套接字將很好地解決您的問題,但目前它們的支持不好。我會用這個小Ajax請求。服務器應該能夠處理它。如果可能的話,您可以使用套接字實現雙解決方案,並使用ajax/comet回退。 – PiTheNumber 2012-04-24 15:20:24

回答

1

也許你覺得這裏有點複雜。一個簡單的Javascript倒計時應該做的伎倆。將它放在文檔的頂部並立即啓動(不是頁面加載),它應該或多或少地與每個客戶端同步。這不是100%準確的,但它適用於易趣。

如果您需要,添加ajax刷新以重新同步它。

考慮到所有的客戶端行爲都延遲了因此,即使計時器是整整1秒鐘,它應該不會有很大的區別。

+0

這是一個不錯的選擇,但是...如果客戶端禁用JavaScript,會發生什麼情況?查看推送服務,例如socket.io或nodejs.org – gorelative 2012-04-24 13:06:33

+0

nodejs的名稱中包含js = javascript。沒有JS或Flash或沒有更邪惡的東西沒有辦法做到這一點。如果客戶端禁用Javascript,則會向他顯示:「對不起,此頁面在沒有javascript的情況下無法使用」;) – PiTheNumber 2012-04-24 13:10:41

+1

您可以嵌入一個在meta中設置了不斷刷新間隔的iframe。 此外,請確保隨您的表單發回的任何時間都通過您的服務器進行了驗證。否則,客戶可以操縱他們的主人時鐘,儘早投入最後一個出價,或者在出價結束後在最後一秒出價。 – crush 2012-04-24 13:22:10