最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于node.js的快速開(kāi)發(fā)透明代理

 更新時(shí)間:2010年12月25日 23:05:40   作者:  
服務(wù)器端js(Server-Side Javascrpt)很早也就有了,JAVA中也有javascript 的script引擎。
但是最近服務(wù)器端js的火爆確實(shí)因?yàn)?A target=_blank>node.js項(xiàng)目。在velocity china 2010大會(huì)Douglas Crockford(Yahoo!)也有一個(gè)topic《卷土重來(lái):服務(wù)器端JavaScript》提到node.js。關(guān)于node.js的詳細(xì)資料請(qǐng)google.

      node.js的非常大的一個(gè)特點(diǎn)就是事件驅(qū)動(dòng),在開(kāi)發(fā)服務(wù)器端服務(wù)的時(shí)候顯得非常方便。昨晚在新浪的@timYang也提到了node.js,估計(jì)新浪微博也注意到了它的優(yōu)點(diǎn)。同時(shí),淘寶最近也表示對(duì)node.js有相當(dāng)?shù)呐d趣。參見(jiàn):http://www.tbdata.org/archives/1285  http://www.tbdata.org/archives/1292 ,為了體驗(yàn)一把,就用node.js寫(xiě)了一個(gè)透明的代理服務(wù)層,代碼如下:

復(fù)制代碼 代碼如下:

var net = require('net');
var proxyhost="127.0.0.1";//被代理的服務(wù)的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("server connected");
socket.on("data", function (data) {
db.write(data);
});
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("server closed");
db.destroy();
});
});
db.on("error",function(data){
console.log("error:\r\n"+data);
});
db.on("end",function(){
console.log("server closed");
socket.destroy();
});
}catch(err){
console.log(err);
}
});
}).listen(listenport, "0.0.0.0");
//用于測(cè)試,生產(chǎn)環(huán)境需考慮穩(wěn)定性代碼處理

OK,大功告成,只用了一點(diǎn)點(diǎn)的時(shí)間,是的,就是這么簡(jiǎn)單。我們把proxyhost,proxyport=3306改成本機(jī)的一個(gè)數(shù)據(jù)上,啟動(dòng)后,我用mysql客戶(hù)端連8124,就可以連上3306端口的數(shù)據(jù)庫(kù)了。

不僅僅是數(shù)據(jù)庫(kù),把proxyhost,proxyport指向到memcached,那么就變成memcached代理了。

通過(guò)console.log你可以非常方便的調(diào)試協(xié)議。也可以用來(lái)監(jiān)視某些不開(kāi)放的協(xié)議。

使用node.js開(kāi)發(fā)網(wǎng)絡(luò)服務(wù)應(yīng)用程序,比如代理層,httpserver處理非常方便。

剛剛有朋友提出了一個(gè) bug ,謝謝這位朋友。

相關(guān)文章

  • js實(shí)現(xiàn)坦克移動(dòng)小游戲

    js實(shí)現(xiàn)坦克移動(dòng)小游戲

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)坦克移動(dòng)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 利用prop-types第三方庫(kù)對(duì)組件的props中的變量進(jìn)行類(lèi)型檢測(cè)

    利用prop-types第三方庫(kù)對(duì)組件的props中的變量進(jìn)行類(lèi)型檢測(cè)

    本篇文章主要介紹了利用prop-types第三方庫(kù)對(duì)組件的props中的變量進(jìn)行類(lèi)型檢測(cè)的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-05-05
  • 微信小程序模板與設(shè)置WXML實(shí)例講解

    微信小程序模板與設(shè)置WXML實(shí)例講解

    這篇文章主要介紹了微信小程序模板與設(shè)置WXML,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • JavaScript 拾碎[三] 使用className屬性

    JavaScript 拾碎[三] 使用className屬性

    Javascript 還可以通過(guò)className 屬性靈活的更改一個(gè)標(biāo)簽元素的CSS 類(lèi)選擇器來(lái)實(shí)現(xiàn)樣式的變化。
    2010-10-10
  • 原生js實(shí)現(xiàn)電子時(shí)鐘

    原生js實(shí)現(xiàn)電子時(shí)鐘

    這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)電子時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 中止javascript執(zhí)行的方法

    中止javascript執(zhí)行的方法

    本篇文章主要是對(duì)中止javascript執(zhí)行的方法進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-02-02
  • js之事件冒泡和事件捕獲詳細(xì)介紹

    js之事件冒泡和事件捕獲詳細(xì)介紹

    事件——怎樣使用事件以及IE和DOM事件模型之間存在哪些主要差別,有需要的朋友可以參考一下
    2013-10-10
  • Jsonp 跨域的原理以及Jquery的解決方案

    Jsonp 跨域的原理以及Jquery的解決方案

    JSONP即JSON with Padding。由于同源策略的限制,XmlHttpRequest只允許請(qǐng)求當(dāng)前源(域名、協(xié)議、端口)的資源。
    2010-05-05
  • 詳解JS瀏覽器事件模型

    詳解JS瀏覽器事件模型

    這篇文章主要介紹了JS瀏覽器事件模型,對(duì)時(shí)間模型感興趣的同學(xué),可以參考下
    2021-05-05
  • BootStrap table使用方法分析

    BootStrap table使用方法分析

    這篇文章主要為大家詳細(xì)介紹了JS組件Bootstrap Table使用方法,具有一定的實(shí)用性和參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11

最新評(píng)論

吴忠市| 江陵县| 开鲁县| 乌拉特中旗| 凌源市| 韶山市| 南木林县| 九江市| 嘉祥县| 遵义县| 西吉县| 达日县| 普兰店市| 乾安县| 建昌县| 健康| 府谷县| 镇远县| 桂阳县| 盱眙县| 辽宁省| 鄂托克前旗| 汉川市| 郑州市| 北票市| 墨竹工卡县| 怀化市| 清原| 绿春县| 隆昌县| 金门县| 遵化市| 玉林市| 浦城县| 平罗县| 杭州市| 株洲县| 元谋县| 顺义区| 呼玛县| 呈贡县|