我正在創建一個大廳,它應該將用戶重定向到一個帶有諸如 site.com/1234 之類的 URL 的游戲房間,其中1234是使用 Node.js 和 Socket.io 的房間代碼。我已經到了當用戶按下按鈕時向服務器發送請求以連接到具有隨機房間代碼的房間的步驟。然后應該發回一條包含 url 的訊息,以便我可以這樣做window.location = url。這應該會產生正確的鏈接并將用戶發送到新的 HTML 檔案。
我現在遇到的問題是,我不知道如何生成這樣的 url 或在請求獲得批準后如何顯示下一個 html 頁面。我看到有些人說我可以做到,app.get("/:gameID")但我缺乏正確實施它的知識。
我看過其他一些帖子詢問這個問題,但答案要么非常模糊,要么他們使用了一些框架。如果有人能將我推向正確的方向,我將不勝感激。
uj5u.com熱心網友回復:
我是怎么做到的,就像你說的那樣,設定一條允許你有引數的路線
app.get('/chat/:id', function(req,res){
res.sendFile('./public/chat/chat.html', { root: __dirname });
});
然后客戶端,修剪 url 并使用 socket.io 發出房間
let t = window.location.href.substring(window.location.href.lastIndexOf("/") 1)
// on connection, tries to login to the chat with the chat ID made
socket.on('connect', function(){
socket.emit('loginchat', {id: t});
});
再次服務器端:
socket.on('loginchat', async function(data){
socket.room = data.id;
//console.log(socket.room)
socket.join(data.id);
});
因此,當用戶使用引數訪問 /chat 路由時,服務器將訪問它,并將它們發送到適當的房間。
我寫得有點快,所以對任何令人困惑的部分表示歉意,如果你被困在其中的一部分,請告訴我:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/425898.html
上一篇:GoogleDomains:根據url路徑創建自定義域
下一篇:使用ExpressRoute引數洗掉URL中的問號。如何按標題獲取帶有問號的帖子?(Node.js/Express/MongoDB)
