I’ve been going over the BOSH spec looking for holes in our
implementation, and run into some things I can’t quite suss out.
§8, Above example 5:
1) The connection manager MUST also return an HTTP 200 OK
response with a <body/> element to the client. Note: This does not indicate
that the payloads have been successfully delivered to the application server.
2) If there are no payloads waiting or ready to be delivered
within the waiting period, then the connection manager SHOULD include an empty
<body/> element in the HTTP result
What’s the difference? If you MUST respond with a <body/> then why is
it only SHOULD if there’s nothing to be delivered w/i the waiting period? If
you close the connection without a <body/> then according to § 14.3:
3) If the network connection is broken or closed before the
client receives a response to a request from the connection manager, then the
client MAY resend an exact copy of the original request.
Causing extra transmissions in both directions, because if there’s no
response, now the CM SHOULD respond with a recoverable binding condition.
Anyway, it’s confusing to me. Perhaps the SHOULD in point 2 ought to be changed
to MUST, a la:
If there are no payloads waiting or ready to be delivered
within the waiting period, the connection manager MUST return an HTTP 200 OK
response with an empty <body/> response.
Are there any non-error conditions where a request will receive no
<body/> element as a response?
What are the gaps that acks fill that weren’t already being managed by
rid? Specifically, with a hold value of 1, it looks like they accomplish the
same thing. I’m just not seeing it, but I’m sure there’s some subtlety I’m
missing.
Thanks,
-bjc
_______________________________________________
Standards mailing list
Info: http://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: [email protected]
_______________________________________________