Heim  >  Artikel  >  Backend-Entwicklung  >  Asp.net verwendet SignalR, um Nachrichtenerinnerungen zu implementieren

Asp.net verwendet SignalR, um Nachrichtenerinnerungen zu implementieren

高洛峰
高洛峰Original
2016-12-24 14:36:181662Durchsuche

1. Einführung
Im vorherigen Artikel habe ich vorgestellt, wie man SignalR zum Übertragen von Bildern verwendet, und für Instant-Messaging-Anwendungen sind Nachrichtenerinnerungen unerlässlich. Viele Websites verfügen mittlerweile über neue Nachrichtenerinnerungsfunktionen. Selbstverständlich ist die Implementierung dieser Funktion für die SignalR-Serie unverzichtbar. In diesem Artikel stellen wir vor, wie Sie die SignalR+iNotify-Bibliothek verwenden, um Sounds und Popup-Erinnerungen für neue Nachrichten zu implementieren.

2. Die Implementierungsidee der Nachrichtenerinnerung
Nachrichtenerinnerung bedeutet, dass ein Popup-Fenster in der unteren rechten Ecke des Clients daran erinnert wird, wenn der Kunde neue Nachrichten hat. Die Idee zum Implementieren dieser Funktion ist:

1. Die Art und Weise, wie der SignalR-Server Nachrichten an den Client sendet, besteht darin, die Methode „receiveMessage“ des Clients aufzurufen, um die Nachricht an den Chat-Datensatz anzuhängen, damit wir sie dem Client-Datensatz hinzufügen können Methode „receiveMessage“: Implementieren Sie die Logik des Popup-Fensters.
2. Nachdem Sie den Ort gefunden haben, an dem die Methode definiert ist, ist es selbstverständlich, eine bessere JS-Bibliothek für den Popup-Effekt zu finden. Die iNotify-Bibliothek wird hier verwendet, um sie zu implementieren. Die Github-Adresse der Bibliothek lautet: https://github.com/jaywcjlove/iNotify und die Online-Testadresse lautet: http://jslite.io/iNotify/
3 Sie können die Nachrichtenerinnerung auf QQ sehen oder WeChat. Im Allgemeinen wird es angezeigt, wenn Sie nicht auf der aktuellen Tab-Seite chatten. Wir können das Html5-VisibilityChange-Ereignis verwenden, aber hier verwende ich die Methode des Fokusverlusts.
3. Spezifischer Implementierungscode
Der hier implementierte spezifische Implementierungscode basiert auf dem Code im zweiten Artikel, und der JS-Code für die Nachrichtenerinnerung wird darüber hinzugefügt.

Hier müssen Sie zuerst die JS-Datei der INotify-Bibliothek in die Seite Index.cshtml einführen. Das heißt:

<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>

Fügen Sie dann den folgenden JS-Code zur Methode „receivePrivateMessage“ hinzu

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: &#39;flash&#39;,
     interval: 500,
     audio: {
      file: [&#39;/Music/msg.mp3&#39;]
     },
     notification: {
      title: "通知!",
      body: &#39;您有一条新消息&#39;
     }
    });
 
    iN.setTitle(true).player();
    iN.setFavicon(true).setTitle(true).notify();
   }
  };
}

Nach den oben genannten 2 Schritten sind der neue Nachrichtenton und die Popup-Erinnerung abgeschlossen, aber diese Popup-Funktion unterstützt den IE-Browser nicht, da der Popup-Effekt mithilfe der Html5-Benachrichtigungs-API implementiert wird wird in IE-Browsern nicht unterstützt. Der Server unterstützt es nicht und kann daher nicht implementiert werden. Es ist ersichtlich, dass der IE-Browser von Microsoft wirklich eine Grube ist, also hat Microsoft ihn entschieden aufgegeben und Edge gestartet. Ich habe Edge selbst nicht getestet, aber viele Freunde haben gesagt, dass es immer noch eine Grube ist.

Als nächstes werfen wir einen Blick auf die konkreten Betriebsergebnisse.

Dies ist das Ende dieses Artikels. Nach diesem Blogbeitrag ist die SignalR-Reihe zu Ende. Vielen Dank an alle fürs Lesen.

Weitere verwandte Artikel über Asp.net mit SignalR zur Implementierung von Nachrichtenerinnerungen finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn