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

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

 更新時間:2010年12月25日 23:05:40   作者:  
服務(wù)器端js(Server-Side Javascrpt)很早也就有了,JAVA中也有javascript 的script引擎。
但是最近服務(wù)器端js的火爆確實因為node.js項目。在velocity china 2010大會Douglas Crockford(Yahoo!)也有一個topic《卷土重來:服務(wù)器端JavaScript》提到node.js。關(guān)于node.js的詳細資料請google.

      node.js的非常大的一個特點就是事件驅(qū)動,在開發(fā)服務(wù)器端服務(wù)的時候顯得非常方便。昨晚在新浪的@timYang也提到了node.js,估計新浪微博也注意到了它的優(yōu)點。同時,淘寶最近也表示對node.js有相當(dāng)?shù)呐d趣。參見:http://www.tbdata.org/archives/1285  http://www.tbdata.org/archives/1292 ,為了體驗一把,就用node.js寫了一個透明的代理服務(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");
//用于測試,生產(chǎn)環(huán)境需考慮穩(wěn)定性代碼處理

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

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

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

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

剛剛有朋友提出了一個 bug ,謝謝這位朋友。

相關(guān)文章

  • js實現(xiàn)坦克移動小游戲

    js實現(xiàn)坦克移動小游戲

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

    利用prop-types第三方庫對組件的props中的變量進行類型檢測

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

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

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

    JavaScript 拾碎[三] 使用className屬性

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

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

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

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

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

    js之事件冒泡和事件捕獲詳細介紹

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

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

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

    詳解JS瀏覽器事件模型

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

    BootStrap table使用方法分析

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

最新評論

海宁市| 银川市| 灵丘县| 麦盖提县| 罗江县| 许昌市| 阿克苏市| 疏勒县| 沐川县| 宣化县| 新郑市| 融水| 鹤壁市| 庄浪县| 东乌珠穆沁旗| 贵德县| 黑河市| 万州区| 宜兰县| 嘉善县| 丹东市| 锡林郭勒盟| 定日县| 柳林县| 团风县| 通许县| 遂川县| 济源市| 日照市| 新和县| 揭东县| 南阳市| 阿克| 随州市| 成武县| 临城县| 马边| 揭阳市| 多伦县| 南漳县| 弥渡县|