Не удается получить angular-socket-io для отображения сообщений

0

У меня есть следующие объявления в файле app.js:

(function () {
    angular.module('medmart', [
        'oc.lazyLoad',
        'ui.bootstrap', 
        'ngFileUpload',
        'ui.validate',
        'btford.socket-io',
    ]).
    factory('mySocket', function (socketFactory) {
        var mySocket = socketFactory({
            prefix: 'medmart~',
            ioSocket: io.connect('https://:::8443'),
        });
        mySocket.forward('error');
        return mySocket;
    });
})();

И в моем index.html у меня есть следующие утверждения:

<script src="js/angular/angular.min.js"></script> <script src="js/plugins/oclazyload/dist/ocLazyLoad.min.js"></script> <script src="js/ui-router/angular-ui-router.min.js"></script> <script src="js/bootstrap/ui-bootstrap-tpls-0.12.0.min.js"></script> <script src="js/plugins/ng-file-upload/ng-file-upload.min.js"></script> для <script src="js/plugins/ng-file-upload/ng-file-upload.min.js"></script>
<script src="/socket.io/socket.io.js"></script> <script src="js/plugins/angular-socket-io/socket.js"></script>

И в controlers.js у меня есть следующее:

mySocket.forward('medmart~procedure', $scope);

$scope.user = {
    fname: '',
    lname: '',
    pid: ''
};
$scope.setCredentials = function() {    
    $scope.user.fname   = $rootScope.user.fname;
    $scope.user.lname   = $rootScope.user.lname;
    $scope.user.pid     = $rootScope.user.pid;
};
$scope.setCredentials();

mySocket.on('connect', function () {

    $scope.$on('socket:error', function (ev, data) {
        console.log("ERROR: " + data)
    });
    $scope.$on('medmart~procedure', function(event, data) {

        if (!data.payload) {
            return;
        } 
        $scope.$apply(function() {

        });
    });
});

В моем routs.js(Node.js) я отправляю следующее: socket.emit('medmart~procedure', procedure);

Однако я не могу получать сообщения в контроллере. Может кто-нибудь сказать мне, что я делаю неправильно?

Заранее спасибо.

  • 0
    Аккуратное форматирование, опечатка в заголовке
Теги:
socket.io

1 ответ

0

Я смог наконец разобраться в этом вопросе. Вместо

$scope.$on('procedure:new', function(data){...});

должен быть:

mySocket.on('procedure:new', function(data){...});

Я смог решить проблему, пройдя эту демонстрацию: https://github.com/btford/angular-socket-io-im

Ещё вопросы

Сообщество Overcoder
Наверх
Меню