我正在使用Socket.io,node.js和express來製作可以在線玩的簡單雙人遊戲。到目前爲止,我在這個主題上找到的一切都沒有解決我的問題,或者比我之後的複雜得多。基本上,我希望玩家能夠加入一個房間(我已經解決了這個問題),並且在房間裏需要爲每個玩家分配「玩家1」和「玩家2」屬性。我想象的是將玩家1分配給第一個連接的用戶,將玩家2分配給第二個玩家,但我還沒有弄清楚如何將值/變量分配給單個套接字連接。將數據分配給套接字
0
A
回答
2
您可以將屬性添加到個別插座這樣的:
io.sockets.on('connection', function(socket){
socket.name = 'John';
console.log(socket.name); // prints out 'John'
});
1
好像你要尋找的應該是相當簡單的。我喜歡@ iheartramen的回答,除非它很難確定哪些插座屬於哪個房間。我會做的是保持房間的名單,什麼插座屬於他們:
var _rooms = [
{
id: 'Some Unique Room ID',
playerSockets: []
}
//...
}
然後當玩家連接到一個給定的房間,你只需要添加他們到列表連接:
io.sockets.on('connection',function(socket){
var room = getRoom(); // however it is you're mapping rooms...
// this returns a reference to a room object
// in the _rooms array
// you can cap the number of players here
socket.playerNumber = room.sockets.length+1;
room.sockets.push(socket);
}
現在你有向後和向前的映射。因爲只有一個事件線程,所以您不必擔心線程安全性與push()
方法。
相關問題
- 1. 將數字分配給數據
- 2. 如何將本地端口號分配給套接字?
- 3. 將嵌套的產品/元組分配給數組[數字]
- 4. 將具體數字分配給字母
- 5. 將直接字符串分配給C中的字符數組
- 6. Sendto或連接是否將任意地址和端口分配給套接字?
- 7. 將數據發送到套接字列表中的套接字
- 8. 將「裸」數字分配給新類型
- 9. 將文本字段分配給數組
- 10. AngularJS:將$ http.get數據分配給變量
- 11. NullReferenceException將數據分配給變量
- 12. 將數據分配給cv :: Mat
- 13. 將數據從LINQ分配給ArrayList
- 14. Flex未將數據分配給變量
- 15. 將ajax數據val分配給表頭
- 16. 如何將$數據分配給css類?
- 17. 將數據源分配給區域
- 18. Jekyll:將數據分配給收集?
- 19. 來自套接字的分隔數據
- 20. NodeJS套接字數據拆分
- 21. Nodejs將服務器數據傳遞給套接字?
- 22. 將本地winsock套接字傳遞給java套接字
- 23. 如何直接將值分配給劍道數據綁定
- 24. 使用newSocket.sin_port = htons(portNumber)將端口號分配給套接字時出錯;
- 25. SQL分析函數 - 如何將數字分配給分區?
- 26. LF將數據發送到套接字
- 27. 如何將撇號字符分配給html數據屬性值?
- 28. 動態內存分配套接字C
- 29. 將字符串文字分配給char *
- 30. 使用連接將數據表中的值分配給另一個數據表