OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

mqtt message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [OASIS Issue Tracker] (MQTT-260) Add a CONNACK code of 'Try Another Server'


    [ https://issues.oasis-open.org/browse/MQTT-260?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=63757#comment-63757 ] 

Ken Borgendale commented on MQTT-260:
-------------------------------------

If we limit the URI parsing to just the authority, and then limit that to not include username or password, we get a relatively simple parse of   host:port and this can be expressed in UTF-8 without any percent encoding or other gorp.

The host can be an IPv4 IP address, and IPv6 IP address, or a resolvable name.  The name resolution can be anything (hosts, DNS, SRV).

The only anomaly is that IPv6 addresses include colons within the name (which is only one of the minor sins of the IPv6 design).  To get around this we parse an IPv6 IP address as [ipv6]:port.  While this is slightly more code than a split on a colon, it is not much more.  Doing this gives us an easily parsable string which matches a subset of the URI standards.

You can allow a list of such strings by using a space separator as space is not allowed in a URI.

I suggest that it is enough to define this simple syntax without going into too much specification of how a client library or client app might use this as we have done with the request/resonce Reply Info.

If we need to differentiate between temp and perm redirects, we should just have multiple return codes.

The issue of session state is an unsolvable one, so I suggest we not try to solve it.

> Add a CONNACK code of 'Try Another Server'
> ------------------------------------------
>
>                 Key: MQTT-260
>                 URL: https://issues.oasis-open.org/browse/MQTT-260
>             Project: OASIS Message Queuing Telemetry Transport (MQTT) TC
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 5
>            Reporter: Raphael Cohn
>            Assignee: Raphael Cohn
>            Priority: Critical
>
> If we add a CONNACK return code of 'Try Another Server', this makes it easier for over-loaded servers to tell clients to redirect. This works in conjunction with MQTT-259, which advocates the use of DNS SRV records.
> Indeed, if we also added server-originated DISCONNECT packets with this return code, we could get clients to cleanly migrate to another server when a server is shutdown for maintenance.
> Please note, I do not favour the server also reporting which new server to connect to. There in lies the route to madness, as it means the current server has to know the state of all the others. That's intimate knowledge.



--
This message was sent by Atlassian JIRA
(v6.2.2#6258)


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]