如何使用socket.io将响应发送回客户端?

我有socket.emit调用从客户端到服务器作为响应我想要的文件名到客户端不会发生下面的代码不知道什么是实现错误的任何想法,我没有看到任何错误。 我如何得到使用socket.emit服务器响应?

client.js

  socket.emit('startRecording',function (response) { console.log('start recording emit response',response); }); 

server..js

  socket.on('startRecording',function () { var response; logsRecording(function (filename) { response = filename; return response; //socket.emit('filename',filename); }); 

要确认消息, startRecording事件的处理程序需要接受确认callback作为参数。 然后你可以用你想要的数据来调用它。 请参阅发送和获取数据(确认)

 socket.on('startRecording',function (socket, ackFn) { var response; logsRecording(function (filename) { ackFn(filename); }); }); 

或者,您可以在client.js中为您已注释的filename事件添加侦听器:

 socket.emit('startRecording'); socket.on('filename', function(filename) { console.log('Filename received: ' + filename); }); 

从标题“集成Socket.IO”开始运行“入门:聊天”应用程序可能会有所帮助,以便更全面地了解Websockets。

你的服务器代码应该是这样的:

 socket.on('startRecording',function (callbackFn) { var response; logsRecording(function (filename) { callbackFn(filename); }); 

如果你想从你的客户端传递数据:

 socket.emit('startRecording', {someData: 'value'}, function (response) { 

那么服务器将是:

 socket.on('startRecording',function (dataFromClient, callbackFn) {