根据Does TCP send a SYN/ACK on every packet or only on the first connection?,客户应该能够知道消息何时到达。但是,send方法似乎无法进行回调。有没有办法知道消息何时到达?
答案 0 :(得分:2)
TCP ack是TCP协议的内部。这不会反映到TCP客户端级别或webSocket级别。因此,使用TCP的应用程序看不到这些协议级别的确认。
如果您希望确认消息到达的是正面的应用程序级别,那么您可以让收件人发回应用程序级别的确认消息。
如果使用socket.io(在webSocket上运行),则它具有内置的确认/响应回调功能。您将回调传递给.emit()
方法,当收件人确认收到该邮件时,该方法将被调用。如果需要,您甚至可以让收件人发回特定的响应。在内部,socket.io只是在响应中发回另一条消息作为确认,当然,您可以使用普通的webSocket实现自己。