2010-06-11 74 views
4

我想創建使用ASPX和Ajax的互動網站,會有創造棋例如與其他玩家遊戲廳就能加入一個選項。創建一個互動網站

我有2個問題:

  1. 我不知道你有什麼想法,我怎麼可以讓一個玩家點擊一個按鈕後,結束輪到他時,其他玩家將能夠做的舉動。

的第一個球員後完成輪到他,我會通過使用數據庫更改之交,但問題是我怎麼能刷新其他玩家的網站,所以當對方一個完成輪到他時,又將來到第二個球員?

  1. 當有人創建房間而不是關閉瀏覽器時 - 我需要關閉該房間。 我應該使用Session_OnEnd關閉他打開的房間嗎?

謝謝!

回答

1

我不知道,如果你有任何想法如何能 我作出這樣的後 一個玩家點擊一個按鈕,完成輪到他時, 其他玩家將能夠做一個 舉動。

有很多的方法可以做到這一點。如果是我,我會有一個「移動」數據庫表或其他東西,並跟蹤它移動的位置。然後在頁面上有SetInterval() javascript方法,該方法使用ajax服務查看該「移動」表並確定它何時轉到用戶。

當有人創建了一個房間,比 關閉他的瀏覽器 - 我需要那個房間 被關閉。我應該使用 Session_OnEnd關閉他打開的房間 ?

您可以使用Session_OnEnd。作爲替代方案,您可以使用ajax方法檢查moves表以查看用戶何時x分鐘未檢入,然後關閉其會話。

+0

所以我需要每秒使用SetInterval()方法來檢查它現在在移動表中的用戶輪到了嗎? ,因爲轉彎持續時間有變化 - 當使用者完成他的轉彎或直到每輪轉彎的最大時間。 – 2010-06-11 15:45:13

+0

我會讓延遲時間稍長一秒,但是這是一般的想法。如果時間需要改變,你可以很容易地在ajax服務中執行這些規則。 – 2010-06-11 15:51:42

+0

爲什麼你會讓它稍長於1秒(我想你的意思是說約2-3秒)? – 2010-06-11 18:42:20

0
  1. 最簡單的方法可能是在每個客戶端上做一個簡單的心跳/輪詢,看看他/她是否還在。儘管如今,推/彗星變得越來越容易和簡單。

  2. 如果你已經在使用輪詢/心跳技術,這將是微不足道後關閉會話,比方說,5個錯過心跳。

+0

您的意思是在每個客戶端上創建計時器,每秒鐘檢查轉向狀態?它不會減慢網站速度,因爲每秒都有一個新的數據庫連接? 以及如何創建該計時器?你能給我這個計時器的名字,或給我一篇關於這個計時器的文章,所以我將學習如何使用它? 謝謝 – 2010-06-11 15:32:10

+0

你能解釋一下你說的什麼推/彗星? – 2010-06-11 15:33:44

+0

push/comet是用於替代輪詢/心跳的技術的同義詞。它旨在通過長時間創建一個連接而不是每隔幾秒建立一個新連接來減少輪詢開銷http://en.wikipedia.org/wiki/Push_technology – Puddingfox 2010-06-14 15:07:27