스프링의 2 센트, websocket 프로그래머를위한 struts 프로그래머.
1. 각 컨트롤러는 [좋은 디자인이 기술을 통해없는 희망] 클라이언트에서 각보기에 존재하는 에 대한 책임
점 2 점 3
접근 1 - 세션이 없으므로 요구 사항에 맞는 특정 간격 (예 : 2 분) 또는 특정 이벤트 (페이지 새로 고침/재로드) 이후에 UI/View에서 업데이트 요청을 컨트롤러에 보내도록 요청하십시오.
접근법의 단점 - UI/뷰 사이드 코드로 자주 업데이트하면 클라이언트 코드를 변경하고 응용 프로그램을 공격하는 데 사용할 수 있으므로 무릎을 꿇고 응용 프로그램을 가져올 수 있습니다.
이 문제를 피하려면 각 요청이 신빙성 있고 완전하며 독립적으로 실행할 수 있어야합니다.
접근 방식의 장점 - 응용 프로그램의 크기 조정을 고려하면 무엇이든 확장 할 수 있습니다.
포인트 4, 5 그들은 항상하지만, 두 번째 방법 [실행 속도 측면에서] 컨트롤러 내부 스레드를 얻을 것이다
controller {
HelperCalssReference.doSomething(){};
}
controller {
doSomething(){};
}
또는
이 더 비슷 분리됨. 포인트 6 점 3.
"클라이언트 측에서 어떤 타이머가"그럼 하지만 "나는 각 클라이언트에 대해 어떤 세션을 유지하고 있지 않다"서버 측에서 세션을 유지하지 당신은 그것을 유지해야 어딘가에 선택하십시오.
서버에서 세션을 유지 관리하지 말고 클라이언트를 추적하고 2 분 후 새 업데이트를 보내야하지만 5시 이후에 말을 멈추려는 경우 오프라인 상태이거나 클라이언트가 오프라인 상태 일 때 어떻게 알 수 있습니까? 서버에서 업데이트되었지만 클라이언트 UI가 온라인 상태 일 수 있으며 업데이트를 기다리는 중일 수 있습니다.
포인트는 프로그램에 논리적 중단 점이 있지만 위의 요구 사항에서 찾을 수 없습니다.
가능성있는 접근 방법 -은
- 를 사용하여 REST는 유지 응용 프로그램 확장 할 수 및 비 상태. [https://capgemini.github.io/architecture/is-rest-best-microservices/은 "디자인/구현/구성의 어려움"섹션을 읽어야합니다.
- 할리우드 디자인 원칙을 사용하지만 누가 할리우드 UI /보기 또는 서버인지 결정해야합니다.
- 이벤트 중심의 접근 방식은 업데이트를 요청할 때 사용자 이벤트가 결정하도록 도움을 줄 수 [여러 번의 클릭 1 초에 3 업데이트를 요청 클라이언트에 대한 조심.]
행복 :
을 설계