СигналР с ДНС

Я создаю систему чата в своем мобильном приложении, но у меня возникла проблема. Я определил 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 и убедитесь, что ошибок нет.

Другие вопросы по тегам