Fix namespace not being second arg

If a message was published to a channel without providing a message the
namespace would not be the second argument passed on the subscriber but
the first.

To ensure the namespace is always the second argument there is now a
test to see if there was a message object. If not the value of the first
argument will be set to `null` before pushing the namespace into the
args array.