我在服务器上有以下代码:
var game = io.listen(app);
game.sockets.on('connection', function(socket){
storePlayers(socket.id);
//Only the player the connects gets this message
socket.emit('firstTime', {message: 'Welcome!'});
//If a player disconnects, a message will be sent to all the sockets.
socket.on('disconnect', function(){
game.sockets.emit('exit', {message: 'Player ' + socket.id + ' left the game...!'});
});
//When a player connects, all the players will get this message.
game.sockets.emit('entrance', {message: 'Player ' + socket.id + ' is online'});
});
我希望获得storePlayers(id)
功能。这是因为当套接字连接时,应该在客户端使用特定的socket.id
创建一个对象。
我将如何做这样的事情?
答案 0 :(得分:1)
根据我的理解,您希望客户端在连接到您的服务器时发送id
。您可以通过在客户端连接到您的服务器后发送消息来实现此目的。
客户端
var socket = io.connect('your_server')
socket.on('connect', function () {
clientId = generate_id(); //however you want to generate the id
socket.emit('newUser', {id: clientId});
}
然后,您可以在服务器上捕获消息“newUser”并检索已连接客户端的ID。