modify hub: minimize scope of lock; change conns to type of []*ConnChan
use another lock for onlineUser map; bug fix