public override void Disconnect()
{
if (!IsConnected) return;
Send(new { channel = "/meta/disconnect", clientId = ClientID });
state.socket.Opened -= OnSocketOpened;
state.socket.Closed -= OnSocketClosed;
state.socket.Error -= OnSocketError;
state.socket.MessageReceived -= OnMessageReceived;
OnDisconnected();
}