2011-08-31 43 views
0

美好的一天!多人遊戲的實現 - jquery應用程序級別?

我打算使用java,jquery,dwr,ajax創建多人棋盤遊戲。在我的Java中,我將數據存儲到應用程序級別。使用dwr和ajax,我可以檢索數據而無需刷新瀏覽器並相應地執行JQuery動畫。我的問題是,如果有很多玩家,那麼JQuery動畫怎麼會自動改變,讓所有人看到它而不需要刷新瀏覽器。

例如,玩家1在網格(1,1)上。我的代碼將允許玩家1使用相應的動畫使用jquery進入網格(1,2),網格(1,3)等。但其他玩家(使用其他瀏覽器)將無法看到這一點。我怎樣才能讓其他玩家看到它?第二個玩家是否有可能遠程訪問玩家1的瀏覽器?任何有關這方面的建議/書籍/文章/代碼樣本都可以。

謝謝。

+0

我以前沒有做過這種事情,但如果我也是這樣,我會有一個服務層控制這個。您可以設置與Web服務(WCF)的雙向綁定,以便您可以傳遞該球員的動作並讓其他球員在瀏覽器中轉發給您。更容易的選擇是同一架構,但要定期輪詢服務以查看其他玩家是否已經移動。那是你之後的事情嗎? - 詳情請參閱[這裏](http://www.codeproject.com/KB/aspnet/CometAsync.aspx)。 – Smudge202

+0

是的..類似的東西。我希望第二個玩家查看第一個玩家是否移動了而不刷新他的頁面。我不知道如何使用Web服務來做到這一點。 – newbie

+0

我追加到我上面的評論中的鏈接顯示了'Comet'和兩種方式綁定的瀏覽器國際象棋遊戲的用戶 - 可能與您所做的無關。如果這就是您要找的答案,我會將其作爲答案發布。 – Smudge202

回答

1

1)您可以使用Ajax通過每秒調用一次ajax調用來檢查每個用戶是否有變化。

2)爲了不做許多阿賈克斯調用,你可以使用Comet

3)從性能角度看,最好的方法是製作TCP服務器並使用套接字。您可以使用Websockets或Flash套接字代理。

+0

Websockets&Comet還不適用於所有瀏覽器。另一種選擇是長期投票 – umbr

+0

彗星包括iframe,腳本標記或ajax長輪詢。對於不支持Websocket的瀏覽器,您可以使用Flash套接字代理和模擬Websockets的庫,這樣您就可以繼續使用標準並支持舊瀏覽器。 – codez

+0

我可以使用HTML5 websocket嗎? – newbie