コード例 #1
0
  /** handle actual disconnecting - from ui thread only */
  void doDisconnect() {
    mState = State.kDisconnecting;
    for (RoomObserver obs : mObservers) {
      obs.onRoomDisconnected();
    }
    Set<String> keyset = mRemoteStream.keySet();
    for (String key : keyset) {
      StreamDescription stream = (StreamDescription) mRemoteStream.get(key);
      removeStream(stream);
      triggerStreamRemoved(stream);
    }
    mRemoteStream.clear();

    if (mLocalStream.size() > 0) {
      unpublish();
    }

    synchronized (mSocketLock) {
      if (mIoClient != null) {
        mIoClient.disconnect();
        mIoClient = null;
      }
    }

    mState = State.kDisconnected;
  }