Asp.net uses SignalR to implement message reminders
1. Introduction
In the previous article, I introduced how to use SignalR to transfer images, and for instant messaging applications, message reminders are essential. Many websites now have new message reminder functions. Naturally, the implementation of this function is indispensable for the SignalR series. In this article, we will introduce how to use the SignalR+iNotify library to implement sounds and pop-up reminders for new messages.
2. The idea of implementing message reminder
Message reminder means that when the customer has new messages, a pop-up box will be reminded in the lower right corner of the client. The idea to implement this function is:
1. The way the SignalR server pushes messages to the client is to call the client's receiveMessage method to attach the message to the chat record, so we can implement the pop-up box in the client's receiveMessage method. logic.
2. After finding the location where the method is defined, it is natural to find a better JS library for the pop-up effect. The iNotify library is used here to implement it. The github address of the library is: https://github.com/jaywcjlove/iNotify, and the online test address is: http://jslite.io/iNotify/
3. Look at the message reminders on QQ or WeChat. The message reminders are usually The current Tab page will pop up when you are not chatting. We can use the Html5 visibilitychange event to achieve this, but here I use the method of losing focus, which is the focus event.
3. Specific implementation code
The specific implementation code implemented here is based on the code in the second article, and the JS code for message reminder is added on top of it.
Here you need to introduce the JS file of the INotify library into the Index.cshtml page first. That is:
<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>
Then add the following JS code to the receivePrivateMessage method
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(); } }; }
After the above 2 steps, the new message sound and pop-up reminder are completed, but this pop-up function is not supported IE browser, because the pop-up effect is implemented using the Html5 Notification API, this feature is not supported in IE browser, so it cannot be implemented. It can be seen that Microsoft's IE browser is really a pit, so Microsoft decisively gave up on it and launched Edge. I have not tested Edge myself, but many friends commented that it is still a pit.
Next let’s take a look at the specific operating results.
This is the end of this article. After this blog post, the SignalR series has come to an end. Thank you everyone for reading.
For more articles related to Asp.net using SignalR to implement message reminders, please pay attention to the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



The usage methods of symbols in C language cover arithmetic, assignment, conditions, logic, bit operators, etc. Arithmetic operators are used for basic mathematical operations, assignment operators are used for assignment and addition, subtraction, multiplication and division assignment, condition operators are used for different operations according to conditions, logical operators are used for logical operations, bit operators are used for bit-level operations, and special constants are used to represent null pointers, end-of-file markers, and non-numeric values.

In C, the char type is used in strings: 1. Store a single character; 2. Use an array to represent a string and end with a null terminator; 3. Operate through a string operation function; 4. Read or output a string from the keyboard.

In C language, special characters are processed through escape sequences, such as: \n represents line breaks. \t means tab character. Use escape sequences or character constants to represent special characters, such as char c = '\n'. Note that the backslash needs to be escaped twice. Different platforms and compilers may have different escape sequences, please consult the documentation.

In C language, the main difference between char and wchar_t is character encoding: char uses ASCII or extends ASCII, wchar_t uses Unicode; char takes up 1-2 bytes, wchar_t takes up 2-4 bytes; char is suitable for English text, wchar_t is suitable for multilingual text; char is widely supported, wchar_t depends on whether the compiler and operating system support Unicode; char is limited in character range, wchar_t has a larger character range, and special functions are used for arithmetic operations.

The difference between multithreading and asynchronous is that multithreading executes multiple threads at the same time, while asynchronously performs operations without blocking the current thread. Multithreading is used for compute-intensive tasks, while asynchronously is used for user interaction. The advantage of multi-threading is to improve computing performance, while the advantage of asynchronous is to not block UI threads. Choosing multithreading or asynchronous depends on the nature of the task: Computation-intensive tasks use multithreading, tasks that interact with external resources and need to keep UI responsiveness use asynchronous.

In C language, char type conversion can be directly converted to another type by: casting: using casting characters. Automatic type conversion: When one type of data can accommodate another type of value, the compiler automatically converts it.

There is no built-in sum function in C language, so it needs to be written by yourself. Sum can be achieved by traversing the array and accumulating elements: Loop version: Sum is calculated using for loop and array length. Pointer version: Use pointers to point to array elements, and efficient summing is achieved through self-increment pointers. Dynamically allocate array version: Dynamically allocate arrays and manage memory yourself, ensuring that allocated memory is freed to prevent memory leaks.

The char array stores character sequences in C language and is declared as char array_name[size]. The access element is passed through the subscript operator, and the element ends with the null terminator '\0', which represents the end point of the string. The C language provides a variety of string manipulation functions, such as strlen(), strcpy(), strcat() and strcmp().
