public IDisposable Subscribe(IXSocketObserver <T> observer)
 {
     if (!Observers.Contains(observer))
     {
         Observers.Add(observer);
     }
     return(new Unsubscriber(Observers, observer));
 }
 public Unsubscriber(ISet <IXSocketObserver <T> > observers, IXSocketObserver <T> observer)
 {
     this._observers = observers;
     this._observer  = observer;
 }