We all know that signalR
uses open connection to communicate with clients.
I want to know how can I send message to clients without any request. For example in every amount of time or any event server pass data to clients.
Asked
Active
Viewed 3,879 times
2

The Hungry Dictator
- 3,444
- 5
- 37
- 53

moeen
- 21
- 1
- 3
2 Answers
1
Use this answer and run background task at your server-side.
Not inside the hub since they'r lifecycle is per-request.

Community
- 1
- 1

Igor Lizunov
- 539
- 5
- 12
0
I think you need broadcast to all user. The following example shows a basic Code that broadcast a massage to all client.Each Time you call SendNotifications(" massage")
, all users receive your massage.
public class EmployeeHub : Hub
{
public void SendNotifications(string message)
{
Clients.All.receiveNotification(message);
}
}
and web page:
<body>
<input id="text1" type="text" />
<input id="button1" type="button" value="Send" />
<ul id="discussion">
</ul>
<!--Reference the jQuery library. -->
<script src="Scripts/jquery-1.6.4.min.js" type="text/javascript"></script>
<!--Reference the SignalR library. -->
<script src="Scripts/jquery.signalR-1.1.3.js" type="text/javascript"></script>
<!--Reference the autogenerated SignalR hub script. -->
<script src="signalr/hubs"></script>
<script type="text/javascript">
$(function () {
// Declare a proxy to reference the hub.
var notifications = $.connection.employeeHub;
// Create a function that the hub can call to broadcast messages.
notifications.client.receiveNotification = function (message) {
// alert(" says '" + message + "'");
// Html encode display name and message.
var encodedMsg = $('<div />').text(message).html();
// Add the message to the page.
$('#discussion').append('<li>' + encodedMsg + '</li>');
};
// Start the connection.
$.connection.hub.start().done(function () {
});
});
</script>

Mostafa Esmaeili
- 178
- 1
- 12
-
Whilst valid, this code won't work in the examples listed in the question (such as a timer or other server side event), so am downvoting. – thab Dec 29 '16 at 23:35
-
Btw, doesn't this code mean that any client can run the SendNotifications method on the server? – Worthy7 Feb 06 '19 at 01:17