2016-06-03 20 views
0

Ich bin nicht an node.js und ich brauche einen Rat. Ich muss einen Client erstellen, der in der Lage ist, eine Socket-Verbindung zu einem bereits gebauten Java-Server zu öffnen und dann Audio vom Mikrofon aufzunehmen und zu senden. Zur gleichen Zeit könnte der Client einige Textnachrichten vom Server erhalten. Der Server ist in der Lage, den eingehenden Audio-Stream zu empfangen und gleichzeitig Text an den Client zu senden, aber ich weiß nicht, ob das Gleiche auch in node.js möglich ist.Node.js Socket senden und empfangen

Wie könnte ein node.js-Client gleichzeitig von einer Socket-Verbindung schreiben und lesen, ohne blockiert zu bleiben? Ich nehme an, dass die Funktionen read() und write() parallel laufen sollten. Diese Aufgabe in Java wird mit zwei Threads gelöst, aber ich weiß, dass node.js single threaded ist.

Es ist mir bis jetzt gelungen, einige Knotenmodule zu installieren, um Audio aufzunehmen und es als eine Datei auf der Festplatte zu speichern. Es ist mir auch gelungen, einen Socket zu öffnen und diese Dateien an den Server zu senden und die Textnachrichten zurück zu empfangen. Jetzt brauche ich diesen Prozess nur noch kontinuierlich.

Antwort

0

node.js ist von Natur aus asynchron, normalerweise werden Sie vom System aufgefordert, in den Socket zu schreiben und den Rückruf für den Vorgang abzuschließen. So blockiert die Funktion socket.write keinen anderen Code.

+0

Der '" data "' Callback wird nur aufgerufen, wenn Daten auf dem Socket _received_ werden, nicht wenn Daten geschrieben werden, oder? Was ich im Wesentlichen frage ist, ob, da Sie die unbenannte Callback-Funktion zu "socket.write()" zur Verfügung gestellt haben, sie wiederum _won't_ rufen Sie den "Daten" Callback? – villapx

+1

@villapx Recht "Daten" -Ereignis wird nur ausgegeben, wenn Daten vom Socket empfangen werden und nicht mit dem Schreiben zusammenhängen. –