我正在使用Node.js通过socket.emit(eventName[, ...args][, ack]).
在客户端,一个Arduino,我使用的是SocketIoClient.h库(链接:https://github.com/timum-viw/socket.io-client)。
所以服务器正在发送一个事件和一个回调函数
socket.emit("event",function(x){
console.log(x);
})
在客户端的有效负载字段中接收为
clientSocket.on("event",event);
void event(const char * payload, size_t length);
如何从客户端调用此回调函数,该函数应该存在于有效负载中?
答案 0 :(得分:0)
如果我理解正确,您正在尝试使用Socket.IO提供的确认机制(我从您的问题的标签中推断出这一点)。
有关详细信息,请参阅
此机制特定于Socket.IO库,因此如果您不在客户端和服务器端使用它,则无法使用。
作为替代方案,我建议将特定事件专门用于您希望的确认。换句话说,当您的客户端收到您的事件“事件”时,它会向服务器发送一个“已接收”事件作为确认以及应该调用回调的数据。
例如,在您的服务器上,您将拥有:
socket.on("received", function (x) {
console.log(x); //Will display "Yay! Got it!"
});
socket.emit("event");
并在客户端上像
socket.on("event", function () {
socket.emit("received", "Yay! Got it!");
});
(我不熟悉您使用的C库,但重点是基础逻辑)。