public void Disconnect(Action callback = null, ushort? code = null, string reason = null) { if (_conn != null) { _conn.OnClose -= OnConnClose; if (_conn.ReadyState != WebSocketState.Closed) { if (code != null) { _conn.Close(code.Value, reason ?? ""); } else { _conn.Close(); } } _conn = null; } if (callback != null) callback(); }