<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    皮杜妮

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      887 Posts :: 3 Stories :: 7 Comments :: 0 Trackbacks

    [root@f2c node_work]# cat ServiceRoute.js
    /*************************
    * 服務路由接口
    * @author
    *
    **************************/
    var http = require('http'),
            url = require('url'),
            amqplib = require('amqplib'),
            async = require('async'),
            uuid = require('node-uuid');

    var open = require('amqplib').connect('amqp://10.0.16.101:5672');
    http.createServer(function(req, res){
            /*** 參數判斷 ***/
            var param = url.parse(req.url).query;
            if(param==null || param=="") {
                    res.writeHead(200, {'Content-Type':'text/html'});
                    res.write("no message", 'utf8');
                    res.end();
            }
            else {
                    /*** 參數處理 ***/
                    console.log("*****************start*******************");
                    var paramArr = param.split("&");
                    var messageInfo = paramArr[0].split("=");
                    var queueName = messageInfo[0];
                    var b = new Buffer(messageInfo[1], 'base64');
                    var mes = b.toString();
                    console.log("*param="+new Date().toLocaleString());
                    console.log("*param="+param);
                    console.log("*request message = "+mes);
                    var callBackInfo = null;
                    if(paramArr.length>=2) callBackInfo = paramArr[1].split("=");
                    /*** 返回隊列 ***/
                    var uuIdStr = uuid.v1()+"_a";
                    var common_options = {durable: false, autoDelete:true, exclusive:true};
                    /*** 接收消息 ***/
                    open.then(function(conn){
                            var  ok = conn.createChannel();
                            ok = ok.then(function(ch){
                                    ch.assertQueue(uuIdStr, common_options);

                                    var onSecond = 1000 * 1;
                                    var timer=setTimeout(function(){
                                            console.log("*setTimeOut");
                                            res.write('{"s":-1, "error":"channel connect time out"}', 'utf8');
                                            ch.close();
                                    }, onSecond);

                                    ch.consume(uuIdStr, function(msg) {
                                            console.log("*response="+msg.content.toString());
                                            ch.close();
                                            clearTimeout(timer)
                                            /*** 返回信息到客戶端 ***/
                                            if(callBackInfo!=null)
                                                    res.write(callBackInfo[1]+"('"+msg.content.toString().replace("'", "\'")+"')", 'utf8');
                                            else
                                                    res.write(msg.content.toString(), 'utf8');
                                            res.end();
                                    });
                                    ch.on("error", function(err){
                                            console.log("*response error="+err);
                                    });
                                    ch.on("close", function(){
                                            console.log("*response close method is called");
                                    });

                            });
                    }).then(null, console.warn);
                    /*** 發(fā)送消息 ***/
                    open.then(function(conn) {
                    var ok = conn.createChannel();
                    ok = ok.then(function(ch){
                                    ch.sendToQueue(queueName, new Buffer(mes), {correlationId:uuIdStr});
                                    ch.close();
                                    ok.then(ok.close.bind(ok));
                            });
                    }).then(null, console.warn);

            }
    }).listen(8081);
    posted on 2014-01-06 10:57 豬眼睛 閱讀(169) 評論(0)  編輯  收藏 所屬分類: node.js
    主站蜘蛛池模板: 精品无码无人网站免费视频| 亚洲午夜福利在线视频| 丰满妇女做a级毛片免费观看| 毛片a级毛片免费播放下载| 亚洲午夜久久久久久尤物| 免费精品国产自产拍在线观看图片| 日产亚洲一区二区三区| 国产成人精品久久免费动漫| 亚洲视屏在线观看| 日韩免费精品视频| 亚洲二区在线视频| 美女黄网站人色视频免费国产| 亚洲国产av玩弄放荡人妇| 免费va人成视频网站全| 免费人成网站永久| 亚洲色成人WWW永久网站| 午夜理伦剧场免费| 色偷偷亚洲女人天堂观看欧| 午夜成年女人毛片免费观看 | 亚洲av福利无码无一区二区 | 国产区在线免费观看| 亚洲av综合avav中文| 永久看日本大片免费35分钟| 在线观看亚洲AV日韩A∨| 免费一看一级毛片人| 国产一级片免费看| 亚洲乱码一二三四区麻豆| 免费看少妇作爱视频| 一级特黄色毛片免费看| 亚洲AV无码欧洲AV无码网站| 亚洲一区二区三区免费观看| 亚洲av无码一区二区三区四区| 亚洲人色婷婷成人网站在线观看| 1000部啪啪毛片免费看| 香蕉视频亚洲一级| 亚洲av无码片在线播放| 日韩中文字幕在线免费观看| 国产做国产爱免费视频| 亚洲国产成人无码AV在线影院| 亚洲人成人一区二区三区| 在人线av无码免费高潮喷水|