Javascript 如何使用SokKe.IO事件和膝关节炎API的WebSoT连接?
我正在制作一个多人游戏,它使用WebSocket在所有连接的玩家之间共享游戏状态 我决定使用SOCKIO与膝关节炎,现在我面临以下问题。 首先,当用户连接到服务器时,将创建一个新的播放器Javascript 如何使用SokKe.IO事件和膝关节炎API的WebSoT连接?,javascript,node.js,rest,websocket,koa,Javascript,Node.js,Rest,Websocket,Koa,我正在制作一个多人游戏,它使用WebSocket在所有连接的玩家之间共享游戏状态 我决定使用SOCKIO与膝关节炎,现在我面临以下问题。 首先,当用户连接到服务器时,将创建一个新的播放器 const playersMeta = {} io.on('connect', socket => { const playerId = uniqid() // Creates a new unique id for a player playersMeta[socket.id] = {
const playersMeta = {}
io.on('connect', socket => {
const playerId = uniqid() // Creates a new unique id for a player
playersMeta[socket.id] = { playerId } // Stores the players id using the socket.id as key
socket.on('disconnect', () => {
delete playersMeta[playerId]
})
})
问题是,玩家需要知道服务器分配给它的唯一id。原因是存在一个游戏状态,告诉每个连接的玩家所有实体在哪里。相机跟随玩家进入游戏时创建的玩家,这就是为什么我需要知道相机应该跟随哪个玩家
我可以创建一个新的socket.io事件,然后播放器会发出一个事件,返回您想要的id,但看起来太复杂了
事件可以在不同的客户端之间实时同步,数据也需要更改,但我确信播放器的id不会更改
也许最好只创建一个api rest端点来获取这些数据。我使用的是膝关节炎,我不确定是否可以使用同一个WebSocket连接而不是使用http.< /p> 不能把它直接发射到同一个套接字吗?
const playersMeta = {}
io.on('connect', socket => {
const playerId = uniqid() // Creates a new unique id for a player
playersMeta[socket.id] = { playerId } // Stores the players id using the socket.id as key
socket.emit('connected', { serverId: 'foo'});
socket.on('disconnect', () => {
delete playersMeta[playerId]
})
});
关于你的客户:
var socket = io('http://server');
socket.on('connected', function (data) {
console.log(data); // { serverId: 'foo'}
// do whatever you want with the servid
});
问题是玩家需要知道服务器分配给它的唯一id。
为什么?主要是为了知道摄像机应该跟随哪个玩家,我只是更新了问题,以便更好地解释这一部分。