code: @SuppressWarnings("unchecked")
      @Override
      public void update(Observable client, Object msg) {
          // handle subscription updates and othre messages that aren't associated
          // w/ a specific command
          if (msg instanceof Map<?, ?>) {
              Map<String, Object> jsonFields = (Map<String, Object>) msg;
              // handle msg types for DDP server->client msgs:
              // https://github.com/meteor/meteor/blob/master/packages/livedata/DDP.md
              String msgtype = (String) jsonFields
                      .get(DDPClient.DdpMessageField.MSG);
              String collName = (String) jsonFields.get(DdpMessageField.COLLECTION);
              String docId = (String) jsonFields.get(DdpMessageField.ID);
  
              // ignore {"server_id":"GqrKrbcSeDfTYDkzQ"} web socket msgs
              if (msgtype != null) {
                  switch (msgtype) {
                      case DdpMessageType.ERROR:
                          broadcastDDPError((String) jsonFields.get(DdpMessageField.ERRORMSG));
                          break;
                      case DdpMessageType.CONNECTED:
                          mDDPState = DDPSTATE.Connected;
                          broadcastConnectionState(mDDPState);
                          break;
                      case DdpMessageType.ADDED:
                          addDoc(jsonFields, collName, docId);
                          // broadcast that subscription has been updated
                          broadcastSubscriptionChanged(collName, DdpMessageType.ADDED, docId);
                          break;
                      case DdpMessageType.REMOVED:
                          if (removeDoc(collName, docId)) {
                              // broadcast that subscription has been updated
                              broadcastSubscriptionChanged(collName,
                                      DdpMessageType.REMOVED, docId);
                          }
                          break;
                      case DdpMessageType.CHANGED:
                          // handle document updates
                          if (updateDoc(jsonFields, collName, docId)) {
                              // broadcast that subscription has been updated
                              broadcastSubscriptionChanged(collName,
                                      DdpMessageType.CHANGED, docId);
                          }
                          break;
                      case DdpMessageType.CLOSED:
                          mDDPState = DDPSTATE.Closed;
                          broadcastConnectionState(DDPSTATE.Closed);
                          break;
                  }
              }
          }
      }
docs: handles callbacks from DDP client websocket callbacks