Я пытаюсь использовать SignalR впервые, желая добавить его в свой проект.
Моя проблема сейчас заключается в том, что я не могу получить сообщение с сервера.Я получаю эту ошибку:
TypeError: signalRhub.Test is not a function
Мои ссылки на скрипты выглядят так (что, похоже, работает):
<script src="~/Scripts/jquery.signalR-2.3.0.js"></script>
<script src="~/Scripts/jquery.signalR-2.3.0.min.js"></script>
<script src='~/signalr/js'></script>
Вот мой код клиента:
<script>
$(function () {
var signalRhub = $.connection.hubSignalR;
console.log(signalRhub);
//Start connection
$.connection.hub.start(function () {
signalRhub.Test(function (response) {
alert("Response from server: " + response);
//$("#testDiv").html(response);
});
});
});
</script>
Вот мое определение класса сервера и метод, который я пытаюсь вызвать (который не может быть найден):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.Hubs;
namespace AuthSys.SignalRhub
{
public class HubSignalR : Hub
{
public string Test()
{
return "Success from server";
}
}
}
------------------- Дополнительная информация ---------------
Я приложил скриншот моей консоли Firefox.В моем коде клиента вы заметите этот код:
console.log(signalRhub);
Это то, что вы видите в консоли Firefox.Глядя на ребенка по имени connection
, похоже, что соединение установлено.Здесь вы видите URL, который он генерирует и т. Д. И, глядя на дочерний элемент server
(расширенные 2 уровня), похоже, что он нашел метод Test()
на сервере.
Мой Startup.cs выглядит следующим образом (если это имеет какое-либо значение):
using Microsoft.Owin;
using Owin;
[assembly: OwinStartupAttribute(typeof(AuthSys.Startup))]
namespace AuthSys
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
app.MapSignalR();
}
}
}
Кто-нибудь может знать, в чем заключается моя проблема?
Что я ожидаю (пытаюсьсделать), чтобы получить предупреждение на моем экране со строкой:
Success from server
, которая отображается в классе C # на сервере.