我不太確定我會如何實現這一點以及相當的安全性。我希望能夠基於mysql行知道是否有人或兩個人在使用。這兩個人完全是匿名的。我確實有一個xmpp服務器的設置,但我不確定這將如何集成到MySQL中,我已經有一個單獨的登錄系統。服務器端用PHP完成一次只有兩個人在某個頁面上?
編輯:我想只允許兩個人在某一頁上,就是這樣。但是,如果他們離開頁面,我需要確定他們是否已經離開。
我不太確定我會如何實現這一點以及相當的安全性。我希望能夠基於mysql行知道是否有人或兩個人在使用。這兩個人完全是匿名的。我確實有一個xmpp服務器的設置,但我不確定這將如何集成到MySQL中,我已經有一個單獨的登錄系統。服務器端用PHP完成一次只有兩個人在某個頁面上?
編輯:我想只允許兩個人在某一頁上,就是這樣。但是,如果他們離開頁面,我需要確定他們是否已經離開。
問題是,如果有人關閉瀏覽器,您無法通知他們已經離開該頁面。
你可以做的是在頁面上有一個AJAX請求,以便每10-15秒向服務器發送一個包含會話ID的請求。將時間戳和會話ID記錄在表中,然後可以查詢數據庫以查看過去15秒內發出了哪些請求
我有xmpp設置,所以我不必做投票。我想知道是否有另一種方式沒有錘擊服務器 – user434366 2010-09-26 15:59:06
您可以嘗試使用OnBeforeUnload事件的解決方案,以通知您用戶已離開頁面,請參見best way to detect when user leaves a web page。
那麼當瀏覽器崩潰或連接斷開時會發生什麼? – user434366 2010-09-26 16:11:37
@ user434366:如果沒有某種形式的回調(例如,ajax),每隔x秒告訴服務器用戶仍在頁面上,您無法做到這一點 - 作爲一種解決方案,這很好。我剛剛指出了一種不需要輪詢的替代解決方案,但會需要一些會話超時(例如檢測用戶在5分鐘內沒有做任何事情)。 – 2010-09-26 16:25:16
確定好像身體不好考慮它 – user434366 2010-09-26 16:30:46
當你說「page」時,你說的是瀏覽器端驗證,因爲瀏覽器應該能夠告訴你用戶仍然在那個頁面上。如果你正在嘗試這樣做,那麼你需要AJAX像waitforatrain的評論。但是有一些漏洞:
1)如果瀏覽器禁用了JavaScript,該怎麼辦?
2)如果用戶在加載頁面後不活動,該怎麼辦?該頁面應該保持「活着」嗎?
這是什麼意思:「我希望能夠知道是否有人或兩個人基於MySQL行。」 ..您是否想一次只限制兩個人在您的應用程序中,或者您想知道誰正在隨時瀏覽您的應用程序?兩者都可以完成,其中一個涉及會話,其他Cookie – Stewie 2010-09-26 15:48:59
一般來說,當他/她已經「離開」很長一段時間時,XMPP應該代表用戶自動觸發不可用的狀態。需要多長時間取決於服務器上的會話過期設置。但是,這可能不會100%符合您的目的 - 因爲始終延遲發送自動不可用的狀態(同樣,延遲取決於您的配置。)但是,爲此目的使用XMPP「恰好」似乎過度。例如讓頁面訪問者加入一個房間,如果它有2+個用戶,則自動離開。不過,你仍然會遇到比賽情況。 – DashK 2010-09-28 12:27:32