saltyrtc / saltyrtc-meta

Protocol description and organisational information for SaltyRTC implementations.
MIT License
74 stars 8 forks source link

Remove send-error message #149

Open lgrahl opened 6 years ago

lgrahl commented 6 years ago

The send-error message is not really helpful since it cannot reliably tell whether a message has been relayed. See this comment for a detailed explanation.

I propose to remove the send-error message. We could add a new field to the disconnected message that indicates whether the client disconnected (or has been disconnected by the server) gracefully with a close code or the connection has been lost (either with a ping timeout or a TCP timeout/error). But even that may be prone to error and the value is questionable.

ovalseven8 commented 5 years ago

May I ask what's the current state on this? What's currently happening in such a case you mentioned in this comment?

On the Websocket layer, the only solution is to send back a "acknowledge" message. Since SaltyRTC is based on websockets, it's up to the applications to ack messages. So, removing send-error makes sense, I would note in the docs though that websockets don't work like TCP in this case.

Like you said, I do not see much value to add a new field to the disconnected message. In the end, it does not matter and the client cannot really conclude if a message was received or not.

lgrahl commented 5 years ago

It's currently implemented but implementations should not rely on it. We still need to remove it.

ovalseven8 commented 5 years ago

It's currently implemented but implementations should not rely on it. We still need to remove it.

You mean applications who use SaltyRTC should not rely on send-error, but implement their own ack protocol if needed?

lgrahl commented 5 years ago

Yes