<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
    主站蜘蛛池模板: 精品国产亚洲一区二区三区| 久久久久亚洲AV成人网| 亚洲国产精品免费视频| 老司机精品免费视频| 精品国产亚洲男女在线线电影| 男人免费视频一区二区在线观看 | 又黄又爽一线毛片免费观看 | 亚洲国产日韩在线| h在线观看视频免费网站| 亚洲网址在线观看| 18禁止观看免费私人影院| 亚洲日本人成中文字幕| 国产免费av片在线无码免费看| 国产精品亚洲一区二区无码 | 风间由美在线亚洲一区| 无码不卡亚洲成?人片| 9久热精品免费观看视频| 国产v亚洲v天堂无码网站| 久久青草免费91线频观看站街| 久久精品国产亚洲精品2020| 91成人免费观看网站| 亚洲日韩AV无码一区二区三区人| 国产精品久久免费视频| 国产精品免费大片一区二区| 亚洲性天天干天天摸| 男人的好免费观看在线视频| 亚洲aⅴ无码专区在线观看| 丝袜熟女国偷自产中文字幕亚洲| 在线人成免费视频69国产| ww亚洲ww在线观看国产| 亚洲av无码成人精品区| 久久精品国产免费| 国产 亚洲 中文在线 字幕| 亚洲国产精品一区二区九九| 日韩免费的视频在线观看香蕉| 亚洲a∨无码男人的天堂| 亚洲国产精品一区二区第四页| 84pao强力永久免费高清| 亚洲精华国产精华精华液| 亚洲精品乱码久久久久久按摩| 国产无人区码卡二卡三卡免费|