socket.io가 이벤트에 대해 여러 번 반환하는 이유

존 임

방금 socket.io를 선택하기 시작했습니다. angular.js에서 사용하려고하는데 모든 것이 잘 작동합니다. 그러나 계속 여러 번 반환됩니다.

내 controller.js에서

socketio.emit('GameOver',$scope.currentPlayer.Name);
      socketio.on('GameOverEmit',function(data){
        if(data === $rootScope.user.user_name){
          var result = {
            opponent : rdyplayers.user_name,
            result : "won"
          };
            // keep getting multiple result 
          console.log(result);
        }else{
          var result = {
            opponent : rdyplayers.user_name,
            result : "lose"
          };
            // keep getting multiple result 
          console.log(result);
        }
      });

내 server.js에서

io.sockets.on('connection', function (client) {
​
           client.user_name = user.user_name;
​
          //Useful to know when someone connects
           console.log('\t socket.io:: player ' + client.user_name + ' connected');
           // playerturn
            client.on('PlayerTurn',function(data){
                 io.emit('PlayerTurnEmit',data);
​
            });
            // game over
            client.on('GameOver',function(data){
                 io.emit('GameOverEmit',data);
​
            });
            // button disabled
            client.on('PlayerButtonDisabled',function(data){
                io.emit('PlayerButtonDisabledEmit',data);
            });
               //When this client disconnects
           client.on('disconnect', function () {
                   //Useful to know when someone disconnects
               console.log('\t socket.io:: client disconnected ' + client.user_name );
               io.emit("disconnected",client.user_name);
           }); //client.on disconnect
​
       }); //io.sockets.on connection

socket.io를 올바른 방식으로 사용하고 있습니까? 모든 사람에게 데이터를 브로드 캐스트하려면 데이터를에 전달하고 데이터를 서버에 전달하고 프런트 엔드로 다시 전달하는 것과 같은 방식으로 emit데이터 브로드 캐스트를 가져옵니다 on.

존 임

controller.js로 인해 페이지를 다시 방문 할 때마다 새 소켓이 설정되므로 사용자가 탭을 떠나거나 닫을 때마다 모든 리스너가 제거됩니다. 내 service.js에 getsocket을 추가하여 문제를 해결했습니다.

ttt.factory('socketio', ['$rootScope', function ($rootScope) {
  'use strict';

  var socket = io.connect();
  return {
      on: function (eventName, callback) {
          socket.on(eventName, function () {
              var args = arguments;
              $rootScope.$apply(function () {
                  callback.apply(socket, args);
              });
          });
      },
      emit: function (eventName, data, callback) {
          socket.emit(eventName, data, function () {
              var args = arguments;
              $rootScope.$apply(function () {
                  if (callback) {
                      callback.apply(socket, args);
                  }
              });
          });
      },
      getSocket: function() {
        return socket;
      }

  };
}]);

내 controller.js에서 나는

$scope.$on('$destroy', function (event) {
  socketio.getSocket().removeAllListeners();
});

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

flask-socket-io 연결 이벤트에 대해 "Method에는 일반적으로 'self'라고하는 첫 번째 매개 변수가 있어야합니다."라는 오류가 발생하는 이유

분류에서Dev

반응 네이티브에서 동일한 이벤트에 대한 여러 호출을 수신하는 socket.io 클라이언트

분류에서Dev

이벤트 리스너는 Ajax 기반 HTML에 대해 여러 번 작동합니다.

분류에서Dev

jQuery 이벤트가 여러 번 반환 됨

분류에서Dev

소켓 연결이 여러 번 트리거되는 socket_io_client

분류에서Dev

Z3가 이러한 혼 절에 대해 Unknown을 반환하는 이유

분류에서Dev

동일한 이벤트에 대해 "listenToOnce"트리거를 여러 번 설정하면 어떻게 되나요?

분류에서Dev

이 파이썬 이해가 사용자 입력을 여러 번 반복하는 이유는 무엇입니까?

분류에서Dev

WebWorker가 메시지 이벤트에서 여러 번 실행되는 이유는 무엇입니까?

분류에서Dev

Javascript 함수가 이벤트 리스너에 의해 여러 번 호출 됨

분류에서Dev

각 루프에 대한 클릭 이벤트가 여러 번 발생합니다.

분류에서Dev

이벤트는 Jquery에서 여러 번 클릭해야합니다.

분류에서Dev

반응 이벤트가 여러 번 트리거 됨

분류에서Dev

Socket.io-이벤트 리스너가 두 번 발생

분류에서Dev

연결 이벤트가 socket.io의 한 클라이언트에 대해 무한히 트리거됩니다.

분류에서Dev

여러 네임 스페이스가있는 Socket.io?

분류에서Dev

스크롤 이벤트가 여러 번 발생하지만 스크롤 당 한 번 발생해야합니다.

분류에서Dev

dns.resolveMx가 여러 번 호출 될 때 항상 오류를 반환하는 이유는 무엇입니까?

분류에서Dev

여러 이벤트에 대해 하나의 함수 정의

분류에서Dev

Socket.io 폴링 요청에 대해 404 오류가 계속 발생하는 이유는 무엇입니까?

분류에서Dev

이벤트가 여러 번 등록되는 것을 방지 JavaScript

분류에서Dev

Java ServerSocket accept 메소드가 클라이언트의 한 연결 요청에 대해 소켓을 두 번 반환하는 이유는 무엇입니까?

분류에서Dev

DATEDIF가 이러한 값에 대해 다른 결과를 반환하는 이유는 무엇입니까?

분류에서Dev

Aframe 애니메이션 완료 이벤트가 여러 번 실행되는 이유

분류에서Dev

비동기 쿼리에 대해 await를 여러 번 작성해야하는 이유는 무엇입니까?

분류에서Dev

이러한 메서드가 동일한 작업에 대해 Rational 및 Integer를 반환하는 이유

분류에서Dev

Socket.IO가 폴링에서 연결 해제 이벤트를받지 못함

분류에서Dev

이 componentDidMount ()가 여러 번 호출되는 이유 / 어디에서?

분류에서Dev

Angular : 'keydown'이벤트 리스너가 여러 번 실행되는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    flask-socket-io 연결 이벤트에 대해 "Method에는 일반적으로 'self'라고하는 첫 번째 매개 변수가 있어야합니다."라는 오류가 발생하는 이유

  2. 2

    반응 네이티브에서 동일한 이벤트에 대한 여러 호출을 수신하는 socket.io 클라이언트

  3. 3

    이벤트 리스너는 Ajax 기반 HTML에 대해 여러 번 작동합니다.

  4. 4

    jQuery 이벤트가 여러 번 반환 됨

  5. 5

    소켓 연결이 여러 번 트리거되는 socket_io_client

  6. 6

    Z3가 이러한 혼 절에 대해 Unknown을 반환하는 이유

  7. 7

    동일한 이벤트에 대해 "listenToOnce"트리거를 여러 번 설정하면 어떻게 되나요?

  8. 8

    이 파이썬 이해가 사용자 입력을 여러 번 반복하는 이유는 무엇입니까?

  9. 9

    WebWorker가 메시지 이벤트에서 여러 번 실행되는 이유는 무엇입니까?

  10. 10

    Javascript 함수가 이벤트 리스너에 의해 여러 번 호출 됨

  11. 11

    각 루프에 대한 클릭 이벤트가 여러 번 발생합니다.

  12. 12

    이벤트는 Jquery에서 여러 번 클릭해야합니다.

  13. 13

    반응 이벤트가 여러 번 트리거 됨

  14. 14

    Socket.io-이벤트 리스너가 두 번 발생

  15. 15

    연결 이벤트가 socket.io의 한 클라이언트에 대해 무한히 트리거됩니다.

  16. 16

    여러 네임 스페이스가있는 Socket.io?

  17. 17

    스크롤 이벤트가 여러 번 발생하지만 스크롤 당 한 번 발생해야합니다.

  18. 18

    dns.resolveMx가 여러 번 호출 될 때 항상 오류를 반환하는 이유는 무엇입니까?

  19. 19

    여러 이벤트에 대해 하나의 함수 정의

  20. 20

    Socket.io 폴링 요청에 대해 404 오류가 계속 발생하는 이유는 무엇입니까?

  21. 21

    이벤트가 여러 번 등록되는 것을 방지 JavaScript

  22. 22

    Java ServerSocket accept 메소드가 클라이언트의 한 연결 요청에 대해 소켓을 두 번 반환하는 이유는 무엇입니까?

  23. 23

    DATEDIF가 이러한 값에 대해 다른 결과를 반환하는 이유는 무엇입니까?

  24. 24

    Aframe 애니메이션 완료 이벤트가 여러 번 실행되는 이유

  25. 25

    비동기 쿼리에 대해 await를 여러 번 작성해야하는 이유는 무엇입니까?

  26. 26

    이러한 메서드가 동일한 작업에 대해 Rational 및 Integer를 반환하는 이유

  27. 27

    Socket.IO가 폴링에서 연결 해제 이벤트를받지 못함

  28. 28

    이 componentDidMount ()가 여러 번 호출되는 이유 / 어디에서?

  29. 29

    Angular : 'keydown'이벤트 리스너가 여러 번 실행되는 이유는 무엇입니까?

뜨겁다태그

보관