[socket.io] socket.io 및 nodejs를 사용하여 서버에서 강제로 클라이언트 연결 해제

SocketIO로 클라이언트 연결을 끊고 말 그대로 연결을 닫는 방법이 있습니까? 누군가가 내 서버에 연결되어 있고 내가 그들과 내 서버 사이의 연결을 끊고 싶다면 어떻게해야할까요?



답변

편집 : 이제 가능합니다

이제 socket.disconnect()서버 측에서 간단히 호출 할 수 있습니다 .

내 원래 대답 :

이것은 아직 불가능합니다.

필요한 경우이 문제 에 투표 / 댓글을 달아주세요 .


답변

socket.disconnect() 서버 측이 아닌 클라이언트 측에서만 사용할 수 있습니다.

Client.emit('disconnect')서버에서 연결 해제 이벤트를 트리거하지만 클라이언트 연결을 효과적으로 해제하지는 않습니다. 클라이언트는 연결 끊김을 인식하지 못합니다.

그래서 질문은 남아 있습니다 : 클라이언트가 서버 측에서 연결을 끊도록 강제하는 방법?


답변

서버가 연결 해제 기능을 호출하게하는 메시지를 클라이언트에 보낼 수없는 이유는 무엇입니까?

클라이언트에서 :

socket.emit('forceDisconnect');

서버에서 :

socket.on('forceDisconnect', function(){
    socket.disconnect();
});


답변

소켓의 이름이 지정된 소켓이라고 가정하면 다음을 사용하십시오.

socket.disconnect()


답변

Google에서 이것을 찾은 사람들을 위해-지금 이에 대한 해결책이 있습니다.

Socket.disconnect()클라이언트를 킥합니다 (서버 측). 클라이언트가 연결 상태를 유지할 기회가 없습니다. 🙂


답변

오늘 아침 확인하면 다음과 같습니다.

socket.close()

https://socket.io/docs/client-api/#socket-close


답변

제 경우에는 여기 소스에서socket.disconnect(true) 필요하다는 것을 알 수 있듯이 호출해야했던 기본 연결을 해체하고 싶었 습니다.