教你用SingalR實現後臺開發程式執行時時檢測

丶Pz發表於2016-01-13

  在除錯js的時候都喜歡用console.log輸出相應的執行結果或者檢視變數值,以便於除錯程式bug,可是程式後臺程式碼執行的時候,本地沒有問題,線上程式碼有問題怎麼辦呢,寫日誌是一個辦法,可是有沒有更直觀的方式呢,時時監測程式碼執行情況,那麼既然SingalR有時時推送的功能,我自己突發奇想想了這麼個寫日誌的方法。

  首先,拿出之前聊天室的專案。先截一個圖:

  第二,你只需要知道singalR服務地址就可以了。我寫的程式碼如下(只是舉例,各種方案不一樣):

  

public static void PushLog(string message)
        {
            var pushUrl = "http://XXXXXXX/ChatPush/XXXXXXX";
            StringBuilder msg = new StringBuilder();
            msg.AppendFormat("ChatMsgId={0}", Guid.NewGuid().ToString());
            msg.AppendFormat("&CvNumber={0}", 747227);
            msg.AppendFormat("&Contents={0}", message);
            msg.AppendFormat("&UserPhoto={0}", "http://img1.gurucv.com/image/417c1ab3-f0ed-4080-9189-a6bb3a381ba9_per_middle.png?t=52442424-7c77-4c01-aae5-43fee8371c3f");
            msg.AppendFormat("&UserName={0}", "[系統監測]");
            msg.AppendFormat("&EntCvNumber={0}", 90000956);
            msg.AppendFormat("&MsgTypeId={0}", 0);
            msg.AppendFormat("&EntName={0}", "Mobile專案時時檢測");
            msg.AppendFormat("&groupId={0}", 90000956);
            msg.AppendFormat("&AddTimeStr={0}", DateTime.Now.ToString());

            var json = msg.ToString();
            var result = HttpHelper.SendPost(pushUrl, json);
        }

好了,大功告成,呼叫方式很簡單了,例如,在做微信授權功能的時候,我想知道,code是否獲取到,就在獲取code的程式碼裡面插上一句:

 Utils.PushLog("當前獲取的code為:" + code);

那麼當釋出到線上的時候,你想檢測某些程式碼的執行情況,開啟客戶端聊天室,就會收到系統傳送過來的訊息啦。

寫的比較粗糙,總結一下:   

1.先用singalR搭建好伺服器,(搭建方法可以參考我的另外幾篇聊天室部落格)介面可以簡單一些,開放推送介面。例如我專案的推送介面為 http://singalR.server/chatmsg/push (舉例)   

2.自己專案裡寫上推送方法,呼叫即可   

3.開啟聊天介面,系統執行情況一目瞭然

當然,大的專案自然有很多監測方法,只是自己突然想到了這麼個思路,挺有意思的哈~~

相關文章