Я пытаюсь добавить функциональность веб-сокета, используя signalR, на основе: chat example.
У меня есть 2 разных проекта - 1: чистый сервер, включает в себя веб-интерфейс API: У меня есть веб-метод, чтобы получить запрос и позвонить в ступице:
[HttpGet]
[Route("api/GetData")]
public IHttpActionResult GetCorpDataApi()
{
return Ok(getResponse());
**startWebSocket();**
}
начало метода веб-сокет звонки:
private void startWebSocket()
{
MonitorHub hub = new MonitorHub();
Timer myTimer = new Timer();
myTimer.Elapsed += new ElapsedEventHandler(hub.DisplayTimeEvent);
myTimer.Interval = 3000;
myTimer.Start();
}
, что вызовы метода в моем хаба:
public class MonitorHub : Hub
{
public void DisplayTimeEvent(object source, ElapsedEventArgs e)
{
var response = MonitorUtils.GetCorpData();
Clients.All.broadcastMessage(response);
}
}
(Все в одном проекте, скомпилировано без ошибок).
Мой код клиента находится в клиентском угловом проекте (также под VS), я добавил необходимые функции в контроллере:
function initWebSocket() {
self.chatHub = null; // holds the reference to hub
self.chatHub = $.connection.MonitorHub; // **I dont have MonitorHub**
$.connection.hub.start();
self.chatHub.client.broadcastMessage = function (response) {
//bla bla
};
}
Я хочу отметить, что я включил в index.html файлы:
<script src="scripts/Vendor/jquery/jquery-2.2.1.js"></script>
<script src="scripts/Vendor/jquery/jquery.signalR-2.2.1.js"></script>
<script src="scripts/signalr/hubs"></script>
<script src="assets/global/plugins/angularjs/angular.min.js" type="text/javascript"></script>
$ .connection.MonitorHub ничего не получает - не определено.
Я действительно считаю, что это имеет какое-то отношение к тому факту, что серверная сторона находится в другом проекте, чем на стороне клиента. Когда я запускаю простой пример, например, пример чата, он работает - все в одном проекте.
Я получаю в консоли эту ошибку: Ошибка: SignalR: Ошибка загрузки концентраторов. Убедитесь, что ссылка на концентраторы верна, например. ,
Есть идеи?
Спасибо, но это не так. Я все еще получаю ошибку в консоли: Ошибка: SignalR: Ошибка загрузки концентраторов. Убедитесь, что ссылка на концентраторы верна, например. . – moshi
ОК. Проверьте, есть ли проблема с несоответствием пути ресурса с файлами js. – Tushar
Я не вижу (когда я проверяю с помощью f12) любую папку signalr/hubs ... – moshi