사용자가 현재 연결되어 있음을 실제로 알 수있는 유일한 방법은 사용자와 서버간에 일종의 연결을 유지하는 것입니다. 두 가지 옵션이 즉시 적용됩니다.
- 자바 스크립트를 사용하여 주기적으로 ajax를 사용하여 서버를 호출합니다. "마지막 연결 시간"상태를 업데이트하는 데 사용되는 특수 엔드 포인트를 서버에두고 사용자가 폴링하여 온라인 상태 인 사용자를 볼 수있는 두 번째 엔드 포인트가 있어야합니다.
- 구현하기가 매우 용이해야한다 서버
옵션 1과 지속적인 접속을 유지하기 위해 websocket를 사용합니다. 이것이 서버에 들어오는 요청의 양을 증가시킬 수 있다는 것을 명심해야하며, 생성 될 수있는 트래픽을 처리하기 위해 그에 따라 계획해야합니다. 자바 스크립트 타이머 호출을 서버로 다시 보내는 빈도를 구성하여 서버의로드 양을 제어 할 수 있습니다.
옵션 2는 라이브러리 지원없이이 작업을 수행 한 경우 좀 더 복잡 할 수 있습니다. 물론 이것을 수행하기가 쉬운 SignalR과 같은 라이브러리가 있습니다. 또한 각 사용자가 지속적 연결을 유지 관리하므로 사이트의 성능에 영향을 미칩니다. 이 접근법의 장점은 옵션 1처럼 폴링의 필요성을 줄입니다. 이 접근 방식을 사용하면 사용자 B에게 오프라인 상태 인 메시지를 사용자 A에게 전달하는 것이 매우 쉽습니다.
나는 또한 정말 쉬운 제 3 옵션을 언급해야한다고 생각합니다. 귀하의 사이트가 꽤 상호 작용하는 것처럼 느껴진다면, 귀하가 사이트에 요청한 마지막 시간을 추적 할 수 있습니다. 이것은 물론 사용자가 "연결되어 있는지"를 판단 할 수있는 충분한 정확성을 제공하지 못할 수도 있습니다.
답장을 보내 주셔서 감사 드리며이 모든 세부 사항에 대해 옵션 2가 최선책입니다. 나는 그것을 구현하려고 노력할 것이다. – kbaccouche