锘??xml version="1.0" encoding="utf-8" standalone="yes"?>免费av网站大全久久,综合视频一区,亚洲无线看天堂avhttp://www.aygfsteel.com/fanjs2000/category/52974.htmlzh-cnThu, 30 Jan 2014 06:37:53 GMTThu, 30 Jan 2014 06:37:53 GMT60ServiceRoute.jshttp://www.aygfsteel.com/fanjs2000/archive/2014/01/06/408550.html鐚溂鐫?/dc:creator>鐚溂鐫?/author>Mon, 06 Jan 2014 02:57:00 GMThttp://www.aygfsteel.com/fanjs2000/archive/2014/01/06/408550.html
[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);
                /*** 鍙戦佹秷鎭?***/
                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);


]]>
主站蜘蛛池模板: 土默特右旗| 淄博市| 连云港市| 疏附县| 玉林市| 玛沁县| 阿瓦提县| 乌鲁木齐县| 尖扎县| 潮安县| 南阳市| 锡林浩特市| 高雄市| 天水市| 合山市| 青田县| 隆子县| 高唐县| 治多县| 兴安县| 兴隆县| 邓州市| 潞西市| 化德县| 南漳县| 类乌齐县| 蚌埠市| 凌源市| 二连浩特市| 封丘县| 舞阳县| 商水县| 如东县| 大庆市| 桑植县| 高青县| 体育| 凤庆县| 台山市| 正镶白旗| 丽江市|