佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > Asp.net使用SignalR實(shí)現(xiàn)消息提醒

Asp.net使用SignalR實(shí)現(xiàn)消息提醒

熱門標(biāo)簽:服務(wù)器配置 硅谷的囚徒呼叫中心 阿里云 百度競(jìng)價(jià)排名 地方門戶網(wǎng)站 科大訊飛語音識(shí)別系統(tǒng) 網(wǎng)站排名優(yōu)化 集中運(yùn)營(yíng)管理辦法

一、引言
  前面一篇文章我介紹了如何使用SignalR實(shí)現(xiàn)圖片的傳輸,然后對(duì)于即時(shí)通訊應(yīng)用來說,消息提醒是必不可少的?,F(xiàn)在很多網(wǎng)站的都有新消息的提醒功能。自然對(duì)于SignalR系列也少不了這個(gè)功能的實(shí)現(xiàn)了。在這篇文章中將介紹如何使用SignalR+iNotify庫來實(shí)現(xiàn)新消息的聲音和彈框提醒。

二、消息提醒的實(shí)現(xiàn)思路
  消息提醒也就是當(dāng)客戶有新消息來時(shí),在客戶端的右下角進(jìn)行彈框提醒。要實(shí)現(xiàn)這個(gè)功能的思路是:

1、SignalR服務(wù)端推送消息到客戶端的實(shí)現(xiàn)方式為調(diào)用客戶端的receiveMessage方法來將消息附加到聊天記錄內(nèi),所以我們可以在客戶端的receiveMessage方法中實(shí)現(xiàn)彈框的邏輯。
2、找好了方法定義的位置后,自然是去找一個(gè)比較好的彈框效果JS類庫了,這里使用的是iNotify庫來實(shí)現(xiàn)的。該庫的github地址為:https://github.com/jaywcjlove/iNotify,在線測(cè)試地址為:http://jslite.io/iNotify/
3、你看QQ或者微信的消息提醒,消息提醒一般是在你不在聊天的當(dāng)前Tab頁面才會(huì)彈出,我們可以利用Html5 visibilitychange事件來實(shí)現(xiàn),不過我這里是通過失焦點(diǎn)的方式,也就是focus事件。
三、具體實(shí)現(xiàn)代碼
  這里實(shí)現(xiàn)的具體實(shí)現(xiàn)代碼是以第二篇文章的代碼為基礎(chǔ),在其基礎(chǔ)上添加消息提醒的JS代碼。

  這里需要先在Index.cshtml頁面引入INotify庫的JS文件。即:

 script type="text/javascript" src="~/Scripts/jquery-1.10.2.min.js">/script>
 script src="~/Scripts/jquery.signalR-2.2.0.min.js">/script>
 script src="~/signalr/hubs">/script>
 script src="~/Scripts/layer/layer.min.js">/script>
 script src="~/Scripts/iNotify.js">/script>

  然后將下面JS代碼加入到receivePrivateMessage方法內(nèi)

 var active = true;
 window.onfocus = window.onblur = function(e) {
  active = (e || event).type === "focus";
 };

 // 接收消息
  systemHub.client.receivePrivateMessage = function(fromUserId, userName, message) {
  // 專題二中的代碼
  
  // 消息提醒的代碼
 if (active == false) {
    var iN = new iNotify({
     effect: 'flash',
     interval: 500,
     audio: {
      file: ['/Music/msg.mp3']
     },
     notification: {
      title: "通知!",
      body: '您有一條新消息'
     }
    });

    iN.setTitle(true).player();
    iN.setFavicon(true).setTitle(true).notify();
   }
  };
} 

  經(jīng)過上面的2步,新消息聲音和彈框提醒就完成了,但是這個(gè)彈框功能不支持IE瀏覽器,因?yàn)閺椏蛐Ч褂玫腍tml5 Notifination API 來實(shí)現(xiàn)的,這個(gè)特性在IE瀏覽器中不支持,所以也就不能實(shí)現(xiàn)了。從而可以看出微軟的IE瀏覽器真是一個(gè)坑啊,所以微軟果斷放棄它,推出Edge,Edge具體怎么我自己沒有試驗(yàn)過,不過很多朋友評(píng)論說仍然是個(gè)坑。

  接下來讓我們看看具體的運(yùn)行效果吧。

源碼下載:使用SignalR實(shí)現(xiàn)消息提醒

到此,本篇文章的內(nèi)容就結(jié)束到此。本篇博文之后,SignalR系列也就告一段落了,謝謝大家的閱讀。

您可能感興趣的文章:
  • Asp.net使用SignalR實(shí)現(xiàn)酷炫端對(duì)端聊天功能
  • Asp.NET MVC中使用SignalR實(shí)現(xiàn)推送功能
  • 詳解在ASP.NET Core下使用SignalR技術(shù)
  • Asp.net SignalR快速入門
  • Asp.net使用SignalR實(shí)現(xiàn)聊天室的功能
  • Vue結(jié)合SignalR實(shí)現(xiàn)前后端實(shí)時(shí)消息同步
  • Asp.net SignalR支持的平臺(tái)有哪些
  • Asp.net使用SignalR實(shí)現(xiàn)發(fā)送圖片
  • ASP.NET用SignalR建立瀏覽器和服務(wù)器的持久連接詳解
  • ASP.NET Core SignalR中的流式傳輸深入講解

標(biāo)簽:威海 隨州 梧州 烏蘭察布 開封 甘孜 廣西 西雙版納

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Asp.net使用SignalR實(shí)現(xiàn)消息提醒》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    北碚区| 临武县| 石柱| 扎兰屯市| 福泉市| 尉氏县| 长治市| 黄冈市| 塘沽区| 会泽县| 敦煌市| 海兴县| 长葛市| 宜君县| 宣武区| 西乌珠穆沁旗| 通海县| 平乡县| 海阳市| 鄄城县| 凤台县| 吴桥县| 东海县| 繁昌县| 白城市| 综艺| 贺兰县| 德阳市| 盐津县| 无锡市| 北辰区| 六安市| 镇原县| 微山县| 南开区| 屏南县| 酒泉市| 临西县| 大港区| 鹿邑县| 梅州市|