/// upgrade the HTTP client connection to a specified WebSockets protocol
// - the Model.Root
URI will be used for upgrade
// - if aWebSocketsAJAX equals default FALSE, it will use 'synopsebinary'
// i.e. TWebSocketProtocolBinaryprotocol, with AES-CFB 256 bits encryption
// if the encryption key text is not '' and optional SynLZ compression
// - if aWebSocketsAJAX is TRUE, it will register the slower and less secure
// 'synopsejson' mode, i.e. TWebSocketProtocolJSON (to be used for AJAX
// debugging/test purposes only)
// and aWebSocketsEncryptionKey/aWebSocketsCompression parameters won't be used
// - once upgraded, the client would automatically re-upgrade any new
// HTTP client link on automatic reconnection, so that use of this class
// should be not tied to a particular
TCP/
IP socket - use OnWebsocketsUpgraded
// event to perform any needed initialization set, e.g. SOA real-time
// callbacks registration
// - will return '' on success, or an error message on failure