Basically, make the channels public and just let the client handle a stream/net error if it's interested. This simplifies the API a little and also allows an application to select {} from the XMPP channel and any other channels at the same time.