Ein von NODEJS geschriebenes TCP -Dienst kann eine Sockendatei (Domain Socket) anhören, und der HTTP -Dienst kann dasselbe tun. Obwohl es nicht viel sinnvoll ist, eine Verbindung zu einer Sockendatei als HTTP -Dienst herzustellen, ist dies hier nur ein reiner Versuch.
So wird der TCP -Dienst geschrieben
Die Codekopie lautet wie folgt:
var net = require ('net');
net.createServer (Funktion (Socket) {
Socket.on ('Daten', Funktion (Daten) {
Socket.Write ('empfangen:' + Daten);
});
}). Hören ('/tmp/node_tcp.sock');
Schließen Sie die obigen '/tmp/node_tcp.sock' an 'an'
Die Codekopie lautet wie folgt:
telnet /tmp/node_tcp.sock
Theut /tmp/node_tcp.sock ...
Verbunden mit (null).
Fluchtcharakter ist '^]'.
Hallo Welt!
Empfangen: Hallo Welt!
Um genau zu sein, sollte dieser Artikel die TCP- und HTTP -Hören von NodeJS für Domain -Socket -Dateien sein.
Es ist immer noch sehr häufig, dass TCP Domain -Sockets anhört. Beispielsweise erfolgt beispielsweise der Zugriff auf die native Datenbank oder den nativen Cache, z. B. die Verwendung von '/tmp/mysql.sock', um auf den nativen MySQL -Dienst zuzugreifen, sodass der TCP -Port nicht zur Belastung gestartet werden muss, und die Sicherheit wird verbessert und die Leistung wird auch verbessert.
Schauen wir uns nun den HTTP -Hören von NodeJS in Domain Socket an und transformieren sie von klassischen Beispielen.
Die Codekopie lautet wie folgt:
var http = required ('http');
http.createServer (Funktion (req, res) {{
Res.WriteHead (200, {'Inhalts-Typ': 'Text/Plain'});
res.end ('Hello World/n');
}). Hören ('/tmp/node_http.sock');
console.log ('Server ausgeführt unter /tmp/node_http.sock');
Ich weiß nicht, wie ich auf den oben genannten HTTP -Dienst im Browser zugreifen soll. Daher verwende ich Telnet, um ihn zu testen
Die Codekopie lautet wie folgt:
telnet /tmp/node_http.sock
Theut /tmp/node_http.sock ...
Verbunden mit (null).
Fluchtcharakter ist '^]'.
Get / http / 1.1
HTTP/1.1 200 OK
Inhaltstyp: Text/Ebene
Datum: Mon, 26. Januar 2015 04:21:09 GMT
Verbindung: Keep-Alive
Transfer-Codierung: Chunked
C
Hallo Welt
0
Kann HTTP -Anforderungen korrekt verarbeiten auf '/tmp/node_http.sock'.
Verwenden Sie den HTTP -Client von NodeJS, um zugreifen zu können
Die Codekopie lautet wie folgt:
var http = required ('http');
var options = {
SocketPath: '/tmp/node_http.sock',,
Methode: 'Get',
Weg: '/'
};
var req = http.request (Optionen, Funktion (res) {
console.log ('Status:' + res.statuscode);
Console.log ('Header:' + json.Stringify (res.Headers));
res.on ('Daten', Funktion (Chunk) {
console.log (chunk.tostring ());
});
});
req.end ();
Führen Sie den obigen Code aus, wenn der Dateiname http_client.js ist,
Die Codekopie lautet wie folgt:
node http_client.js
Status: 200
Header: {"Content-Typ": "Text/Plain", "Datum": "Mon, 26. Januar 2015 04:25:49 GMT", "Verbindung": "Close", "Transfer-Coding": "Chunked"}
Hallo Welt
Dieser Artikel dient nur für Aufzeichnungen, und ich kann mir nicht vorstellen, wie tatsächlich der eigentliche Zweck, HTTP -Dienste auf Domain Socket zu hören, und der Browser kann nicht darauf zugreifen.