Topic server is ok, client should improve states control, add message queue