2017-12-23 4 views
0

Does TCP send a SYN/ACK on every packet or only on the first connection?에 따르면 클라이언트는 메시지 도착 시간을 알 수 있어야합니다. 그러나 send 메서드는 콜백을 사용할 수없는 것처럼 보입니다. 메시지가 언제 도착 하는지를 알 수있는 방법이 있습니까?websocket.send를 사용할 때 메시지가 도착하는시기를 아는 방법?

+2

아니요, 없습니다. 승인은 네트워크 응용 프로그램에서 볼 수 없으며 스택에 의해 내부적으로 사용됩니다. – Barmar

+0

메시지가 언제 도착하는지 알아야 할 경우 수신자가 응답을 보내도록 응용 프로그램 프로토콜에 설계하십시오. – Barmar

+0

@Barmar 매우 불행합니다. 나에게 알려 줘서 고마워. – SCLeo

답변

2

TCP ack는 TCP 프로토콜의 내부 프로토콜입니다. 이는 TCP 클라이언트 레벨이나 webSocket 레벨로 되돌아 가지 않습니다. 따라서 이러한 프로토콜 수준 확인 응답은 TCP를 사용하는 응용 프로그램에서 볼 수 없습니다.

메시지가 도착했음을 응용 프로그램 수준에서 긍정적으로 확인하려면받는 사람에게 응용 프로그램 수준 확인 메시지를 보내도록 할 수 있습니다.

socket.io (webSocket 상단에서 실행)를 사용하는 경우 수신 확인/응답 콜백 기능이 내장되어 있습니다. 수신자가 메시지 수신을 확인하면 호출 될 .emit() 메서드에 콜백을 전달합니다. 원하는 경우 수신자에게 특정 응답을 보내도록 할 수도 있습니다. 내부적으로 socket.io는 여러분이 응답 할 수있는 응답으로 다른 메시지를 다시 보냅니다. 당연히 평범한 webSocket으로 구현할 수 있습니다.

관련 문제