socketio客户端接收重复的消息

时间:2016-10-31 04:22:22

标签: angularjs socket.io

我不确定这是否是socketio客户端或服务器问题,但每次我导航到该页面并重新订阅同一个房间时,我都会收到一条加号消息。每次离开页面时我都会放一个休息室。

后端:

    socket.on('subscribe', function(room){
        logger.info("subscribing to room", data.room);
        socket.join(room);
    });

    socket.on('unsubscribe', function(room){
        logger.info("unsubscribing to room");
        socket.leave(room);
    });

    socket.on('update', function(msg){
        io.sockets.to("room1").emit('udpate', msg);
    });

在我的角度应用程序中,我在控制器中有这个

function Controller(WebSocketService){
    var vm = this;

    function update(){
        WebSocketService.emit('update', "update message");
    }

    vm.WebSocketService.emit('subscribe', "room1");

    vm.WebSocketService.on('update', function(update){
        console.log("Update received");
    });

    $scope.$on("$destroy", function() {
        vm.WebSocketService.emit('unsubscribe', "room1");
    });

}

当我第一次导航到页面时,此工作正常。但是,当我导航回主菜单,然后使用此控制器导航回此页面并发送更新...在后端我只看到1个套接字消息发送但在前端I' m看到"收到更新"两次。每当我离开然后返回并触发我的更新功能时,我都会收到许多重复的消息。

我检查了后端房间内用户的长度,只是1.我的socketio客户端是否也需要以某种方式取消订阅房间?

由于

0 个答案:

没有答案