2017-06-08 214 views
-1

我有一個多人遊戲,其中服務器連接兩個客戶端互相對戰。它運作良好。但是,現在我想添加一個歡迎頁面,添加他們的用戶名。我需要將此用戶名發送到服務器。但是,問題是,當加載歡迎頁面時,它會連接到服務器(這很好)。但是,當我想要加載下一頁使用節點JS服務HTML頁面快遞

location.href = "index.html" 

它不起作用。事實上,它從服務器斷開連接,並且不會重新連接。如何在玩家點擊按鈕後加載多個文件?我如何將這些文件保存在同一個「客戶端」實例下? (不斷開)。謝謝。

+0

請出示代碼 – magreenberg

+0

其實我寫出來的問題在這裏太哈哈: https://stackoverflow.com/questions/44428057/nodejs-rooms-not-working-after-redirect 我沒有意識到在這一點上,它沒有工作,因爲該頁面正在從服務器斷開location.href點 –

回答

-1

您是否在Node js中公開您的index.html文件,以確保您的瀏覽器可以訪問該文件?

+0

我不知道我明白。爲了簡化我的問題,我如何加載另一個html頁面,而不需要從服務器斷開連接? –

0

既然你沒有代碼,就讓我試一試。爲了擴大在什麼@anderson說,請確保您通過什麼有你的靜態文件提供給您的應用程式,例如

const staticCont = express.static(__dirname + "/public"); 

其中「公共」,則所有的靜態文件的文件夾目錄。這樣,您的應用程序中的任何鏈接(在前端)都需要加載任何文件。

接下來,假設這樣做了,假設您的遊戲在單個頁面上,可以說"mygame.html「,如果您希望在此頁面中加載另一個html或其他內容而不會丟失/從」mygame.html「導航,然後

作爲例子,用戶按下按鈕,你將需要AJAX中要加載的內容:

創建一個虛擬的div會牽着你加載的內容,讓我們把它叫做

<div id="usrBioWrapper"></div> 

然後說你的應用程序中有一個按鈕可以提取用戶身份。 讓我們叫這個按鈕 <button id="usrBio">Get user bio</button>

和HTML要加載叫做usrBioPage.html,那麼你需要這樣的:

$('#usrBio').on('click', function(){ 
    $('#usrBioWrapper').load(' usrBioPage.html '); 
}); 

完蛋了。當用戶點擊按鈕時,它會加載你的內容在該div中。但記住,你必須在你的app.js(後端節點端)設置公共目錄,否則它不會工作。

希望這有助於

+1

這似乎是一個合理的解決方案,謝謝。我還發現,如果我只是將歡迎文件與服務器斷開連接,然後將用戶名sessionstorage存儲在瀏覽器中,並以這種方式檢索信息,它就會起作用。 –

+0

是的,這工作太大聲。希望它有幫助。 – somdow