2012-06-12 98 views
1

我想使用websockets和socket.io來製作一個簡單的多人遊戲。Socket.io不同的客戶端ID

我們已經獲得了大部分功能,現在我們的問題是找出勝出的玩家是誰。

因此,我們現在試圖實現的解決方案是通過在運行時獲取套接字,並且當玩家死亡時,他們向服務器發送消息。接收到此消息的服務器將一個屬性'dead'添加到套接字。所以socket.dead = true在玩家死亡時設置。

然後我們檢查連接的套接字列表(動態獲得),看看是否只有一個剩餘的播放器存活(通過檢查是否定義了socket.dead)。我們意識到的一件事情是,連接插座的socket.id實際上發生了變化 - 這對我們來說是一個問題...

問題是插座id在何時何地發生變化,以及如何檢測這些變化,以便我們更新我們的遊戲數據?

感謝

+0

我不使用Node.js的,但在我的WebSocket遊戲我只是有來自客戶端的每個消息中的用戶ID,被賦予這個ID通過服務器連接(有時重複使用,如果檢測到相同的用戶,並存儲在localStorage客戶端)。 –

回答

0

你不應該檢查套接字ID,而應該每次他連接到Socket.IO(socket.user = username)時間驗證用戶。

然後,不要檢查「活着」的玩家的ID,你可以檢查他們的用戶名。

更多關於使用Express & Socket.IO這裏處理會話:http://www.danielbaulig.de/socket-ioexpress/