Ala*_*ain 4 javascript node.js socket.io
我刚开始使用node.js,从目前为止我所知道的,客户端与服务器通信的方式是:
//Client Code 1
var iosocket = io.connect();
iosocket.on('connect', function () {
iosocket.send("Here's some info");
});
Run Code Online (Sandbox Code Playgroud)
收到"消息"事件后服务器会发现这种情况:
//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"
}
});
Run Code Online (Sandbox Code Playgroud)
现在我希望客户端能够提供几个不同的事件,例如:
//Server Code 2
client.on('buttonClicked', function() { ...
client.on('nameChanged', function(newName) { ...
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何.我可以使用我所拥有的部分找到的唯一解决方案是发回消息,但让它们包含键值对信息:
//Server Code 3
client.on('message', function(msg) {
kvp = message.split(',');
if( kvp[0] == 'buttonClicked' )
...
else if( kvp[0] == 'nameChanged' )
...
}
Run Code Online (Sandbox Code Playgroud)
但我确信有一种正确的方法,我还没有在任何例子中看到过.我希望有类似于服务器如何生成它想要使用的任何事件:
//Server Code 4
io.sockets.emit('serverCustomEvent', eventData);
Run Code Online (Sandbox Code Playgroud)
客户使用以下方式监控:
//Client Code 4
iosocket.on('serverCustomEvent', function(data) {
//process data
});
Run Code Online (Sandbox Code Playgroud)
有人能指出我正确的方向吗?
您可以emit在客户端上使用将自定义消息发送到服务器.
iosocket.emit('serverCustomEvent', data);
Run Code Online (Sandbox Code Playgroud)
并在服务器上
io.sockets.on('connection', function(socket) {
socket.on('serverCustomEvent', login);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4006 次 |
| 最近记录: |