2016-06-26 4 views
0

현재 소켓을 초기화하고 이벤트를 설정하는 싱글 톤 (static-ish?) 서비스가 있습니다. 그런 다음 서비스는 소켓 정보를 사용하는 각 구성 요소에 주입됩니다.Angular2 + Socket.IO 구현 모범 사례

내 질문은 :

  • 이 가장 좋은 방법은 같은이 소리를합니까?

  • 예고 할 수 있습니까?

  • 변경 될 수 있습니다.

답변

0

는 난 단지 각 1.5.x 이하에서 개발 한, 그래서 난 내 대답은 어떻게 적용 모르겠지만, 아마 당신은 그것에서 설계 원칙을 수 있고, 적절하게 적용되지만 여기에 표시됩니다.

어떻게하면 좋을지에 대해 처음 생각했습니다. 소켓을 초기화하는 것과 같은 것을 처리하는 소켓 서비스를 설정하고 이벤트를 바인드하고 이벤트 바인딩을 해제하는 두 개의 공용 함수도 갖게됩니다.

var bindingId = SocketService.bind('socketEventName', function(eventData){ 
    console.log(eventData); 
}); 

을 다음 방금이

을 할 수있는 바인딩을 해제하려면 다음과 같이 나중에 이벤트를 바인딩을 해제하기 위해 ID를 이벤트 이름 및 데이터 매개 변수가 기능을, 그리고 아마도 반환 바인딩
SocketService.unbind(bindingId); 

이 레이아웃의 경우 다른 서비스에 SocketService를 포함시킬 수 있으며 SocketService에 모든 논리가 있어야하는 대신 필요에 따라 다른 서비스가 응답을 처리하도록 할 수 있습니다.