Fix the URL parsing in the hub, so that //hub/sessionID doesn't break things.  Reject empty sessionIDs.  Replace logger with a simple custom implementation.