コード例 #1
0
  @Override
  public void RecvMessage(Message message) throws Exception {

    logger.debug("recv message :{}", message.getContent());

    synchronized (this) {
      if (this.userState != GSUserState.Login) {
        // TODO: may lost message
        return;
      }

      Gson gson = new Gson();

      String content = new String(message.getContent(), "UTF8");

      JsonObject json = (JsonObject) new JsonParser().parse(content);

      JsonArray bodies = json.getAsJsonArray("bodies");

      JsonObject object = (JsonObject) bodies.get(0);

      int messageType = object.get("messageBodyType").getAsInt();

      String id = json.get("id").toString();

      IPCMessage ipcMessage =
          new IPCMessage(id, message.getType(), message.getSource(), message.getTarget());

      ipcMessage.setContent(object.toString(), messageType);

      ipcMessage.setDirect(GSDirect.From);

      ipcMessage.setSeqID(message.getSeqID());

      ipcMessage.setState(GSMessageState.LocalApply);

      binderDataBase.saveMessage(ipcMessage, this);

      onMessageStateChanged(ipcMessage, GSError.SUCCESS);

      logger.debug("recv message :{} -- success", ipcMessage);
    }
  }