gpt4 book ai didi

javascript - 如何在 node.js + socket.io 中创建自定义客户端事件

转载 作者:搜寻专家 更新时间:2023-10-31 23:33:30 25 4
gpt4 key购买 nike

我刚开始使用 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
});

有人能指出我正确的方向吗?

最佳答案

您可以在客户端使用emit 向服务器发送自定义消息。

iosocket.emit('serverCustomEvent', data);

在服务器上

io.sockets.on('connection', function(socket) {
socket.on('serverCustomEvent', login);
});

关于javascript - 如何在 node.js + socket.io 中创建自定义客户端事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13733201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com