express.js & socket.io과 채팅하려고합니다. 현재 내 채팅 사용자는 동일한 브라우저에서 여러 탭을 열 수 있으며 모든 탭에서 채팅 할 수 있습니다. 즉, 동일한 클라이언트가 동시에 몇 명과 채팅 할 수 있습니다. 이 문제를 방지하고 싶습니다.socket.io에서 동일한 클라이언트를 감지하는 방법
나는 때마다 채팅을 연결에서 클라이언트를 방지하려면 :
1) 클라이언트가
2) 클라이언트가 다른 브라우저를 열어 같은 브라우저에 다른 탭에서 작동하며 그들을 작동
어떻게 할 수 있습니까? 감사합니다.
우선, 도움에 감사드립니다 !!! 당신이 옳은 첫 번째 경우 - 쿠키 또는 세션은 동일한 브라우저에서 작동하지만 여러 탭에서 작동하는 동일한 사용자를 탐지하는 데 충분합니다. 하지만 두 번째의 경우 나는 사용자 인증을 제공하고 싶지 않습니다. 여러 개의 브라우저에서 작동하는 동일한 클라이언트를 감지 할 수있는 채팅을 보았는데이 채팅은 사용자 인증없이 작동합니다. 나는 똑같이하고 싶다. – Emil
나는 내 문제에 대한 하나의 해결책을 찾았다 고 생각한다. 우리가'socket.handshake.address'를 사용하여 클라이언트의 IP 주소를 얻는다면, 우리는 같은 기계에서 소켓을 통해 연결을 열 때마다이 클라이언트를 탐지 할 수 있습니다. – Emil
@Emil - 프록시 및 NAT와 사설망의 사용자 때문에 IP 주소가 단일 사용자와 고유하게 일치한다는 보장이 없습니다. 웹 사이트에서는 가정용 라우터의 NAT 때문에 동일한 IP 주소로 모든 사용자를 자신의 컴퓨터에있는 모든 집에서 볼 수 있습니다. 기업 사용자에게도 마찬가지입니다. 따라서 IP 주소 만 사용하면 같은 사설망에있는 다른 누군가가 서비스를 사용하고 있기 때문에 사용자가 처음으로 연결을 거부하게됩니다. 너의 설명에 대해 – jfriend00