СигналР с ДНС
Я создаю систему чата в своем мобильном приложении, но у меня возникла проблема. Я определил jQuery и signalR в моем индексе. Я также определил путь сценария к моему серверу.
Код (index.html)
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<!-- Cordova whitelist plugin -->
<meta http-equiv="Content-Security-Policy" content="default-src *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; style-src 'self' 'unsafe-inline' *">
<!-- Base libs -->
<script src="libs/ionic/js/ionic.bundle.js"></script>
<script src="libs/ngCordova/dist/ng-cordova.min.js"></script>
<script src="cordova.js"></script>
<!-- Third party libs -->
<script src='libs/jquery/dist/jquery.min.js'></script>
<script src='libs/signalR/jquery.signalR.min.js'></script>
<!-- Location for SignalR lib to open a connection with -->
<script src="http://www.mytestserver.nl/chathub/signalr/hubs"></script>
<!-- Application Javascript files | put the routing files after the controllers! -->
<script src="app/app.js"></script>
</head>
У меня есть рабочая версия на моем локальном хосте, поэтому я думаю, что мой код правильный. Когда я пытаюсь использовать код в моем контроллере, я получаю ошибку 404 not found. Я думаю, это потому, что я не определяю порт в моем скрипте для сервера. Тогда signalR по умолчанию принимает текущий хост (localhost:8100).
Код (chatController.js)
.controller('ChatController', ['$scope', '$state', function ($scope, $state) {
$.connection.hub.url = "http://www.mytestserver.nl/chathub/signalr";
$.connection.hub.start().done(function () {
console.log("hello world");
});
}]);
Не входит DNS. Я не могу определить номер порта, потому что DNS удаляет номера портов. Определение любого номера порта приводит к ошибке 404 или к истечению времени ожидания соединения.
Что я могу сделать, чтобы установить соединение с сервером?
1 ответ
У меня была такая ситуация, которая раньше работала на devexpress localhost, но при переносе в IIS путь не отображался правильно.
Возможно, что указанный вами путь к сигнализаторам / концентраторам неверен, поэтому сервер не может подобрать его правильно.
Попробуйте добавить подстановочный знак к вашей ссылке на сигнализатор / концентраторы, как это
<script src="~/signalr/hubs"></script>
После этого откройте консоль javascript и убедитесь, что ошибок нет.