protected override void RaiseOnCompletedOnDestroy() { if (_cancelPingPong != null) { _cancelPingPong.Dispose(); _cancelPingPong = null; } if (_onRecv != null) { _onRecv.OnCompleted(); _onRecv = null; } if (!IsConnected) // Note : Here should be if(IsConnected) WebSocket.Close(); }