disconnect
Tears down the connection and releases any underlying client/socket resources.
When accountId is null, all sessions this protocol instance manages are torn down (used for full logout / app-wide disconnect). When set, only that single account's session is closed, leaving other simultaneously-connected accounts of the same protocol untouched.