SignalR 2.X и JQuery 3.X "ON" не активированы - PullRequest
0 голосов
/ 25 мая 2020

У меня проблемы с запуском SignalR 2.4.1 с любой версией JQuery 3.x

У меня очень простой хаб, который отправляет уведомления pu sh в приложение Angualr JS. Приложение отлично работает с JQuery 1 и 2, но как только я обновляюсь до 3, SignalR перестает работать. Читал про проблему со старым грузом, выгружаю. но это не так, так как это было исправлено в 2.2.1

У меня нет ошибок в консоли, фабрика angualr JS просто хочет, чтобы событие ON запускалось, когда приходят уведомления.

это код, который я использую, он довольно стандартный и отлично работает с JQuery <3 </p>

function signalRHubProxyFactory(serverUrl, hubName, startOptions) {
        var connection = $.hubConnection(signalRServer);
        var proxy = connection.createHubProxy(hubName);
        connection.start().done(function () { });

        return {
            on: function (eventName, callback) {
                proxy.on(eventName, function (result) {
                    $rootScope.$apply(function () {
                        if (callback) {
                            callback(result);
                        }
                    });
                });
            },
            off: function (eventName, callback) {
                proxy.off(eventName, function (result) {
                    $rootScope.$apply(function () {
                        if (callback) {
                            callback(result);
                        }
                    });
                });
            },
            invoke: function (methodName, callback) {
                proxy.invoke(methodName)
                    .done(function (result) {
                        $rootScope.$apply(function () {
                            if (callback) {
                                callback(result);
                            }
                        });
                    });
            },
            connection: connection
        };
    };

    return signalRHubProxyFactory;    

У кого-нибудь такая же проблема?

Это мой список скриптов

    <script src="../Scripts/jquery-3.5.1.js"></script>
    <script src="../Scripts/jquery.signalR-2.4.1.js"></script>
    <script src="../Scripts/bootstrap.min.js"></script>
    <script src="../Scripts/angular.min.js"></script>

Спасибо

1 Ответ

0 голосов
/ 25 мая 2020

Для всех, у кого была эта проблема, выглядит так, чтобы заставить AngularJS, SignalR и JQuery> = 3 работать, angular. js скрипт должен быть добавлен перед ними всеми

<script src="../Scripts/angular.min.js"></script>

<script src="../Scripts/jquery-3.5.1.js"></script>
<script src="../Scripts/jquery.signalR-2.4.1.js"></script>
<script src="../Scripts/bootstrap.min.js"></script>

...