【问题标题】:angularjs signalr - Resolve server methodangularjs signalr - 解析服务器方法
【发布时间】:2017-01-12 06:09:36
【问题描述】:

我在使用 SignalR 和 angularjs (1.5.6) 时遇到了一些困难

我使用以下库: Https://github.com/JustMaier/angular-signalr-hub

我有以下必须支持 SignalR 的工厂。

'use strict';
app.factory('commonFactory', commonFactory);

commonFactory.$inject = ['$rootScope', 'Hub', '$log'];

function commonFactory($rootScope, Hub, $log) {
    var scope = $rootScope;

    scope.hub = {
        instance : {},
        isReady : false
    };

    var _listeners = {
        'login': function (message) {
            $log.log(message);
            $rootScope.$apply();
        }
    };
    var _methods = ['connect', 'sendMessage'];

    var _errorHandler = function (error) {
        console.error(error);
    };

    var _hub = new Hub('message', { methods: [] })
    .promise.done(function () {
        _hub.listeners = _listeners;
        _hub.methods = _methods;
        _hub.errorHandler = _errorHandler;

        scope.hub.isReady = true;
        scope.hub.instance = _hub;
    }); 
}

在我的控制器中,我使用我的工厂:

app.controller('loginController', loginController);

loginController.$inject = ['$scope', 'commonFactory'];

function loginController($scope, commonFactory) {
    $scope.login = _login;


    $scope.model = {
        user : {
            id : 1
        }
    }

    function _login() {
        commonFactory.hub.instance.connect($scope.model.user.id);
    }
}

以下行有误: commonFactory.hub.instance.connect($scope.model.user.id);

上面写着:

commonFactory.hub.instance.connect 不是函数

如何解析服务器方法(用c#编写)

界面:

public interface IMessageHub
{
    [HubMethodName("login")]
    void Login(object message);

    [HubMethodName("send")]
    void Send(object message);

    [HubMethodName("connect")]
    void Connect(Guid userGuid);

}

提前致谢

【问题讨论】:

    标签: angularjs signalr


    【解决方案1】:

    我已经解决了:

    '使用严格';

    app.factory('commonFactory', commonFactory);

    commonFactory.$inject = ['$rootScope', 'Hub', '$log'];

    function commonFactory($rootScope, Hub, $log) { var 范围 = $rootScope;

    var 实例 = { };

    var hub = new Hub('message', {
        listeners: {
            'login': function (from, to, message) {
              $log.log(message);
              $rootScope.$apply();;
            }
        },
    
        //server side methods
        methods: ['connect', 'sendMessage'],
    
        //handle connection error
        errorHandler: function (error) {
            console.error(error);
        }
    });
    
    var _login = function (userGuid) {
        hub.promise.done(function () {
            hub.login(userGuid); //Calling a server method
        });
    };
    
    instance.login = _login;      return instance; }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-06
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多