Я создаю чат-систему в своем мобильном приложении, но у меня проблема. Я определил 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 не найденную ошибку. Я думаю, это связано с тем, что я не определяю порт в своем сценарии на сервере. Затем 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 или ошибке времени ожидания подключения.
Что я могу сделать, чтобы установить соединение с сервером?
У Ive была эта ситуация, перед которой отлично работала на devexpress localhost, но при передаче в IIS путь не отображался правильно.
Возможно, что путь, который вы указали для signalr/hubs, неверен, поэтому сервер не правильно его подбирает.
Попробуйте добавить подстановочный знак к вашей ссылке signal/hubs, как это
<script src="~/signalr/hubs"></script>
После этого откройте консоль javascript и убедитесь, что ошибок нет.