NodeJS 웹 애플리케이션 청취 양말 파일 example_node.js

WBOY
풀어 주다: 2016-05-16 16:13:41
원래의
1648명이 탐색했습니다.

NodeJS로 작성된 TCP 서비스는 양말 파일(도메인 소켓)을 수신할 수 있으며 해당 HTTP 서비스도 동일한 작업을 수행할 수 있습니다. 양말 파일에 HTTP 서비스로 연결하는 것은 별 의미가 없지만 이는 단지 순수한 시도일 뿐입니다.

TCP 서비스는 이렇게 작성합니다

코드 복사 코드는 다음과 같습니다.

var net = require('net');
net.createServer(함수 (소켓) {
소켓.on('데이터', 함수(데이터) {
​ 소켓.write('수신: ' 데이터);
});
}).listen('/tmp/node_tcp.sock');

위의 '/tmp/node_tcp.sock'에 연결하세요
코드 복사 코드는 다음과 같습니다.

텔넷 /tmp/node_tcp.sock
/tmp/node_tcp.sock 시도 중...
(null)에 연결되었습니다.
이스케이프 문자는 '^]'입니다.
안녕하세요!
수신: Hello World!

정확하게 말하면 이 글은 NodeJS의 TCP, HTTP 모니터링 도메인 소켓 파일이어야 합니다.

TCP 모니터링 도메인 소켓에는 여전히 매우 일반적입니다. 예를 들어 로컬 MySQL 서비스에 액세스하기 위해 '/tmp/mysql.sock'을 사용하는 등 로컬 데이터베이스 또는 캐시에 액세스할 때 이러한 작업이 수행되는 경우가 있습니다. 시작할 필요가 없으며 TCP 포트가 노출되어 보안이 향상되고 성능도 향상됩니다.

이제 고전적인 예를 수정한 NodeJS의 도메인 소켓 HTTP 모니터링을 살펴보겠습니다

코드 복사 코드는 다음과 같습니다.

var http = require('http');
http.createServer(함수(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello Worldn');
}).listen('/tmp/node_http.sock');
console.log('/tmp/node_http.sock에서 실행 중인 서버');

아직 브라우저에서 위의 HTTP 서비스에 접속하는 방법을 모르므로 Telnet을 이용해서 테스트해 보세요

코드 복사 코드는 다음과 같습니다.

텔넷 /tmp/node_http.sock
/tmp/node_http.sock 시도 중...
(null)에 연결되었습니다.
이스케이프 문자는 '^]'입니다.
GET/HTTP/1.1
HTTP/1.1 200 OK
콘텐츠 유형: 텍스트/일반
날짜: 2015년 1월 26일 월요일 04:21:09 GMT
연결: 연결 유지
전송 인코딩: 청크


안녕하세요

0


'/tmp/node_http.sock'에서 HTTP 요청을 올바르게 처리할 수 있습니다.

NodeJS HTTP 클라이언트를 사용하여 액세스

코드 복사 코드는 다음과 같습니다.

var http = require('http');

var 옵션 = {
소켓 경로: '/tmp/node_http.sock',
메소드: 'GET',
경로: '/'
};

var req = http.request(옵션, 함수(res){
console.log('상태: ' res.statusCode);
console.log('HEADERS: ' JSON.stringify(res.headers));

res.on('data', 함수(청크){
console.log(chunk.toString());
});
});

req.end();


파일명이 http_client.js일 경우, 위 코드를 실행하세요.
코드 복사 코드는 다음과 같습니다.

노드 http_client.js
상태: 200
헤더: {"content-type":"text/plain","date":"Mon, 2015년 1월 26일 04:25:49 GMT","connection":"close","transfer-encoding":"chunked" }
안녕하세요

이 기사는 단지 기록을 위한 것입니다. HTTP 서비스가 도메인 소켓에서 수신 대기하도록 하는 실제 목적을 생각할 수 없으며 브라우저가 이에 액세스할 수 없습니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿