Я новичок в SignalR и пытаюсь реализовать уведомление, когда какое-либо событие запускается из API.
Что пробовали:
Hub:
public class NotificationHub : Hub
{
private static IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext<NotificationHub>();
public static void Send( string content)
{
hubContext.Clients.All.addMessage(content);
}
}
контроллер:
//static event from external API
public static void onTick(Tick TickData)
{
if(TickData.InstrumentToken == buy.InstrumentToken)
{
NotificationHub.Send(TickData.Bid);
}
}
Что я должен использовать в представлении для отображения сообщения, которое запускается при условии?
Просмотр, попробовал:
$(document).ready(function () {
var conn = $.connection.NotificationHub;
conn.client.addMessage = function (message) {
alert(message);
};
});
Есть ли что-то еще, чтобы заставить это работать?
Редактировать:
Эшли ответ приблизил меня, и пару вещей также пропало, как показано ниже,
connection.NotificationHub should be
connection.notificationHub '
порядок ссылок на файлы js файлов
1 jquery-1.10.2.min.js
2 jquery.signalR-2.1.0.min.js
3 сигнала/концентраторы
Но теперь, выполняя его, входит в.fail(function(), а консоль показывает ошибку, http://127.0.0.1:8080/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22notificationhub % 22% 7D% 5D & _ = 1515664348026 Не удалось загрузить ресурс: net :: ERR_CONNECTION_REFUSE
Пожалуйста, порекомендуйте. Заранее спасибо.
Убедитесь, что вы включили источник концентраторов SignalR:
<script type="text/javascript" src="~/signalr/hubs"></script>
Вы просто не запустили соединение для SignalR, добавьте это:
$.connection.hub.start().done(function() {
//connection has started :-)
}).fail(function() {
//connection has failed to start :-(
});
Используя ваш пример, он будет выглядеть так:
$(document).ready(function () {
var conn = $.connection.NotificationHub;
conn.client.addMessage = function (message) {
alert(message);
};
$.connection.hub.start().done(function() {
//connection has started :-)
alert("connected");
}).fail(function() {
//connection has failed to start :-(
alert("failed");
});
});