2016-07-21 26 views
6

socket.emit dan istemciden sunucuya çağrı var yanıt istemiyorum istemciden istemciye dosya adını vermek istiyorum kod ne olursa olsun herhangi bir yanlış uygulandığından emin değilim, herhangi bir hata görmüyorum. socket.emit'u kullanarak nasıl cevap gönderebilirim?Soket.io kullanarak istemciye nasıl yanıt gönderilir?

client.js

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

server..js mesajı kabul etmek

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

'glitr -router' ve 'glitr-router-client', hem sunucu hem de bağlı istemcilerden gelen ekspresyon fonksiyonlarını expressjs'de yaptığınız gibi sağlar. – X0r0N

cevap

7

, startRecording olay için işleyici bir parametre olarak bir alındı ​​geri arama kabul etmesi gerekir. Ardından istediğiniz verileri kullanarak arayabilirsiniz. Eğer client.js içinde, dışarı yorumladı ki filename olayı için bir dinleyici ekleyebilirsiniz Alternatif Sending and getting data (acknowledgements)

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

Bkz:

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

O Get Started: Chat application aracılığıyla başlığı başlayan çalıştırmak için yararlı olabilir Websockets daha genel bir anlayış elde etmek için "Socket.IO entegre".

+0

Teşekkürler çalıştı! – hussain

1

Sunucu kodu aşağıdaki gibi görünmelidir:

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

İstemcinizdeki verilerine geçmek isterseniz:

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

sunucu olacak:

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