Fix typo.
Added assertion.
Added DisconnectClient to handle disconnection.
Rename mMutex to mLock to match other usage.
Added kNMessageClientDisconnected to signal disconnection.