private void doSend(long connectionId, String message, Object params) throws Exception {
    ISocketServerConnection ssc = getConnectionById(connectionId);
    if (ssc == null) catchException(this, new Exception("Send.Connection (" + connectionId + ") not found."));

    final IRemoteCallObject rco = new RemoteCallObject();
    synchronized (rco) {
      rco.setCallObjectId(getNextCallId());
      rco.setMetaDataObject(new RemoteCallObjectMetaData(message, RemoteCallObjectType.Message));
      rco.setDataObject(new RemoteCallObjectData(params));
      ssc.send(SerializeUtils.serializeToBytes(rco));
    }
  }