我刚开始使用 node.js,据我所知,客户端与服务器的通信方式是:
//Client Code 1
var iosocket = io.connect();
iosocket.on('connect', function () {
iosocket.send("Here's some info");
});
当收到“消息”事件时,服务器会意识到这一点:
//Server Code 1
var socketio = require('socket.io');
var io = socketio.listen(server);
io.sockets.on('connection', function (client) {
client.on('message', function(msg) {
//msg== "Here's some info"
}
});
现在我希望客户端能够提供几个不同的事件,例如:
//Server Code 2
client.on('buttonClicked', function() { ...
client.on('nameChanged', function(newName) { ...
但我很难弄清楚如何。使用我所拥有的部分,我能想出的唯一解决方案是发回消息,但让它们包含信息的键值对:
//Server Code 3
client.on('message', function(msg) {
kvp = message.split(',');
if( kvp[0] == 'buttonClicked' )
...
else if( kvp[0] == 'nameChanged' )
...
}
但我确信有一种正确的方法可以做到这一点,我还没有在任何示例中看到过。我希望有类似于服务器如何生成它想要使用的任何事件的东西:
//Server Code 4
io.sockets.emit('serverCustomEvent', eventData);
依次由客户端使用:
//Client Code 4
iosocket.on('serverCustomEvent', function(data) {
//process data
});
有人可以指出我正确的方向吗?