我正在使用 Node js 和 socket.io 来实现基本的聊天应用程序。每个写入任何消息的客户端都被广播到连接到服务器的所有客户端(它是一个跨浏览器应用程序)。现在我希望只有一个首先访问服务器的客户端可以将消息转发给所有人,而其他订阅用户只能接收消息(不能向任何人发送数据)。我的问题是,当服务器请求向所有人发送数据时,我应该如何识别服务器上的客户端?
这是服务器端的实现:
var app = require('express')()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server);
server.listen(3000);
app.get('/', function(req, res)
{
res.sendfile(__dirname + '/index.html');
});
io.set('log level', 1);
io.sockets.on('connection', function(socket)
{
socket.emit('news', "Hello, welcome to our conversation!<br />");
socket.on('receive', function(data)
{
//log it to console
console.log(data.data);
// announce to all clients that someone sent you data.
socket.broadcast.emit('news', "Client says: " + data.data + "<br />");
});
});