首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pubnub角聊天

Pubnub角聊天
EN

Stack Overflow用户
提问于 2016-03-07 16:51:40
回答 1查看 531关注 0票数 3

我正在我的AngularJS应用程序中实现pubnub。我在跟踪这个教程

问题是,如果我从头开始创建一个新的AngularJS应用程序,聊天就能工作,但是如果我在已经存在的应用程序中实现了代码,则会得到以下错误:

代码语言:javascript
复制
Missing Callback                                                   pubnub.min.js:1 

我看不到我写的信息和我应该收到的信息,但是我可以发送它们,我可以在聊天的另一边看到这些信息。你知道我怎么解决这个问题吗?

编辑:这是pubnub聊天的控制器:

代码语言:javascript
复制
'use strict';

angular.module('myApp.appointments', ['ngRoute'])

.config(['$routeProvider', function($routeProvider) {
}])

.controller('appointmentsCtrl', ["$rootScope", "$scope", "$http", "$timeout", "$cookies", "URL", "Pubnub", function($rootScope, $scope, $http, $timeout, $cookies, URL, Pubnub) {

    $scope.sortType = 'name';
    $scope.sortReverse = false;

    $scope.sortType_s = 'time';

    $scope.filterAppointments = false;
    $scope.filterDate = '';

    $scope.highlightRow = '';

    $scope.$on('$routeChangeSuccess', function() {
        var data = {
            "token":$cookies.get('userToken'),
            "hairdresser_id": $cookies.get('userId')
        };

        $http.post(URL.url + 'appointments', data).then(function(res){
            $scope.app_list = res.data.appointments; 
            $scope.service_list = res.data.appointment_services; 
            $scope.customers_list = res.data.customers;
            $scope.pending_number = res.data.pending;
        });

        data = {
            "token":$cookies.get('userToken'),
            "hairdresser_id": $cookies.get('userId')
        };

        $http.post(URL.url + 'monthly_earnings', data).then(function(res){
            $rootScope.monthly_earnings = res.data.amount;
        });
    });

    // Pubnub implementation
    $scope.channel = "messages-channel";
    $scope.uuid =  _.random(100).toString();
    Pubnub.init({
        publish_key: MY_KEY,
        subscribe_key: SUB_KEY,
        ssl: true,
        uuid: $scope.uuid
    });

    $scope.sendMessage = function() {
        if (!$scope.messageContent  || $scope.messageContent === '') {
            return;
        }
        Pubnub.publish({
            channel: $scope.channel,
            message: {
                content: $scope.messageContent,
                sender_uuid: $scope.uuid,
                date: new Date()
            },
            callback: function(m) {
                 console.log(m);
            }
        });

        $scope.messageContent = '';
    }

    $scope.messages = [];

    Pubnub.subscribe({
        channel: $scope.channel,
        triggerEvent: ['callback']
    });

    $scope.$on(Pubnub.getMessageEventNameFor($scope.channel), function(ngEvent, m) {
        $scope.apply(function() {
            $scope.messages.push(m)
        });
    });

}]);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-07 18:44:15

您忘记了s函数中triggerEvents语句末尾的Pubub.subscribe:

代码语言:javascript
复制
Pubnub.subscribe({
    channel: $scope.channel,
    triggerEvents: ['callback']
});

如果它解决了你的问题,请告诉我。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35849414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档