>웹 프론트엔드 >JS 튜토리얼 >node.js_javascript 기술을 기반으로 투명 프록시를 신속하게 개발

node.js_javascript 기술을 기반으로 투명 프록시를 신속하게 개발

WBOY
WBOY원래의
2016-05-16 18:13:30990검색

하지만 최근 서버사이드 js가 인기를 얻은 것은 사실 node.js 프로젝트 덕분입니다. Velocity China 2010 컨퍼런스에서 Douglas Crockford(Yahoo!)도 node.js를 언급한 "Comes Back: Server-side JavaScript"라는 주제를 다루었습니다. node.js에 대한 자세한 내용을 보려면 Google을 방문하세요.

node.js의 매우 큰 특징은 이벤트 중심인데, 이는 서버 측 서비스를 개발할 때 매우 편리합니다. 어젯밤 Sina에서 @timYang도 node.js를 언급했는데, Sina Weibo도 그 장점을 알아차린 것 같아요. 동시에 Taobao는 최근 node.js에 상당한 관심을 표명했습니다. 참고: http://www.tbdata.org/archives/1285 http://www.tbdata.org/archives/1292 이를 경험하려면 node js를 사용하세요. 투명 프록시 서비스 계층의 경우 코드는 다음과 같습니다.

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

var net = require('net');
var Proxyhost="127.0.0.1";//프록시 서비스의 IP
var Proxyport=3306;//프록시 포트
var Listenport = 8124;//프록시 포트
net.createServer(function (socket) {
socket.on("connect",function(){
console.log('connected');
try {
var db=net.createConnection(proxyport,proxyhost);
db.on("connect",function(){
console.log("서버 연결됨");
socket.on( "데이터", 함수(데이터) {
db.write(데이터);
})
db.on("data",function(data){
console.log(data . toString('utf8',0,data.legnth));
//console.log(data);
socket.write(data)
socket.on( " close",function(){
console.log("서버가 닫혔습니다");
db.destroy();
});
});
db.on(" error ",function(data){
console.log("error:rn" data);
});
db.on("end",function(){
console.log( "서버가 닫혔습니다.");
socket.destroy();
})
}catch(err){
console.log(err)
}
});
}).listen(listenport, "0.0.0.0");
//테스트를 위해 프로덕션 환경에서 안정성 코드 처리를 고려해야 합니다.

자, 끝났습니다. 잠시 후에 사용하세요. 네, 아주 간단합니다. Proxyhost 및 Proxyport=3306을 로컬 컴퓨터의 데이터로 변경한 후 mysql 클라이언트를 사용하여 8124에 연결했고 포트 3306에서 데이터베이스에 연결할 수 있습니다.

단순한 데이터베이스가 아니라 Proxyhost와 Proxyport를 Memcached로 지정하면 Memcached 프록시가 됩니다.

console.log를 통해 매우 편리하게 프로토콜을 디버깅할 수 있습니다. 또한 공개되지 않은 특정 프로토콜을 모니터링하는 데에도 사용할 수 있습니다.

node.js를 사용하여 프록시 레이어와 같은 네트워크 서비스 애플리케이션을 개발하면 httpserver 처리가 매우 편리합니다.

방금 친구가 버그를 올렸네요, 고마워요 친구.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.