确认socket.io自定义事件

我正在寻找一种确认socket.emit调用的方法。

socket.emit('message', msg);

我已经看到一种机制,即接收方将发送另一个自定义事件作为确认,但这将在我的聊天应用程序中添加成千上万的传输。请建议一种有效的方法。

回答:

Emmit方法的第三个参数接受一个回调,该回调将传递给服务器,以便您可以调用所需的任何数据进行确认。实际上,这确实非常方便,并且节省了配对呼叫响应事件的工作量。

我正在使用刚刚测试的一些代码更新答案。

首先在

   io.sockets.on('connection', function (sock) {

console.log('Connected client');

sock.emit('connected', {

connected: 'Yay!'

});

// the client passes 'callback' as a function. When we invoke the callback on the server

// the code on the client side will run

sock.on('testmessage', function (data, callback) {

console.log('Socket (server-side): received message:', data);

var responseData = {

string1: 'I like ',

string2: 'bananas ',

string3: ' dude!'

};

//console.log('connection data:', evData);

callback(responseData);

});

});

console.log('starting connection...');

var socket = io.connect('http://localhost:3000');

socket.on('error', function (evData) {

console.error('Connection Error:', evData);

});

// 'connected' is our custom message that let's us know the user is connected

socket.on('connected', function (data) {

console.log('Socket connected (client side):', data);

// Now that we are connected let's send our test call with callback

socket.emit('testmessage', {

payload: 'let us see if this worketh'

}, function (responseData) {

console.log('Callback called with data:', responseData);

});

});

以上是 确认socket.io自定义事件 的全部内容, 来源链接: utcz.com/qa/416372.html

回到顶部