Tabnine Logo
AVSession
Code IndexAdd Tabnine to your IDE (free)

How to use
AVSession
in
cn.leancloud.session

Best Java code snippets using cn.leancloud.session.AVSession (Showing top 20 results out of 315)

origin: cn.leancloud/realtime-core

@Override
public void onWebSocketOpen() {
 LOGGER.d("web socket opened, send session open.");
 if (AVSession.Status.Closed == session.getCurrentStatus()) {
  session.reopen();
 }
}
origin: cn.leancloud/realtime-core

public boolean queryConversationsDirectly(final String clientId, final String queryString, int requestId) {
 AVSession session = AVSessionManager.getInstance().getOrCreateSession(clientId);
 session.queryConversations(JSON.parseObject(queryString, Map.class), requestId);
 return true;
}
origin: cn.leancloud/realtime-core

public AVSession getOrCreateSession(String peerId) {
 try {
  // 据说这行有NPE,所以不得不catch起来避免app崩溃
  boolean newAdded = !peerIdEnabledSessions.containsKey(peerId);
  AVSession session = null;
  if (newAdded) {
   session = new AVSession(peerId, new AVDefaultSessionListener());
   AVConnectionManager.getInstance().subscribeConnectionListener(peerId, session.getWebSocketListener());
   peerIdEnabledSessions.put(peerId, session);
  } else {
   session = peerIdEnabledSessions.get(peerId);
  }
  return session;
 } catch (Exception e) {
  LOGGER.w("failed to create Session instance.", e);
  return null;
 }
}
origin: cn.leancloud/realtime-core

void reopen() {
 String rtmSessionToken = AVSessionCacheHelper.IMSessionTokenCache.getIMSessionToken(getSelfPeerId());
 if (!StringUtil.isEmpty(rtmSessionToken)) {
  openWithSessionToken(rtmSessionToken);
 } else {
  int requestId = WindTalker.getNextIMRequestId();
  openWithSignature(requestId, true, false);
 }
}
origin: cn.leancloud/realtime-core

public void removeSession(String peerId) {
 AVSession session = peerIdEnabledSessions.remove(peerId);
 if (session != null && session.getWebSocketListener() != null) {
  AVConnectionManager.getInstance().unsubscribeConnectionListener(session.getSelfPeerId());
 }
}
origin: cn.leancloud/realtime-core

private String getConversationGeneString() {
 if (StringUtil.isEmpty(conversationGene)) {
  HashMap<String, String> conversationGeneMap = new HashMap<String, String>();
  conversationGeneMap.put(Conversation.INTENT_KEY_CLIENT, session.getSelfPeerId());
  conversationGeneMap.put(Conversation.INTENT_KEY_CONVERSATION, this.conversationId);
  conversationGene = JSON.toJSONString(conversationGeneMap);
 }
 return conversationGene;
}
private AVIMConversation parseConversation(AVIMClient client, Messages.ConvCommand convCommand) {
origin: cn.leancloud/realtime-core

private void openWithSessionToken(String rtmSessionToken) {
 SessionControlPacket scp = SessionControlPacket.genSessionCommand(
     this.getSelfPeerId(), null, SessionControlPacket.SessionControlOp.OPEN,
     null, this.getLastNotifyTime(), this.getLastPatchTime(), null);
 scp.setSessionToken(rtmSessionToken);
 scp.setReconnectionRequest(true);
 AVConnectionManager.getInstance().sendPacket(scp);
}
private void openWithSignature(final int requestId, final boolean reconnectionFlag,
origin: cn.leancloud/realtime-core

@Override
public void onWebSocketClose() {
 if (AVSession.Status.Closed != session.getCurrentStatus()) {
  try {
   session.sessionListener.onSessionPaused(session);
     Message m = session.pendingMessages.poll();
     if (!StringUtil.isEmpty(m.cid)) {
      AVConversationHolder conversation = session.getConversationHolder(m.cid, Conversation.CONV_TYPE_NORMAL);
      InternalConfiguration.getOperationTube().onOperationCompleted(session.getSelfPeerId(), conversation.conversationId,
          Integer.parseInt(m.id), Conversation.AVIMOperation.CONVERSATION_SEND_MESSAGE,
          new RuntimeException("Connection Lost"));
origin: cn.leancloud/realtime-core

/**
 * 处理 v2 版本中 message 的 rcp 消息
 * @param msgId
 * @param conversationId
 * @param timestamp
 */
private void processMessageReceipt(String msgId, String conversationId, int convType, long timestamp) {
 Object messageCache =
     MessageReceiptCache.get(session.getSelfPeerId(), msgId);
 if (messageCache == null) {
  return;
 }
 Message m = (Message) messageCache;
 AVIMMessage msg =
     new AVIMMessage(conversationId, session.getSelfPeerId(), m.timestamp, timestamp);
 msg.setMessageId(m.id);
 msg.setContent(m.msg);
 msg.setMessageStatus(AVIMMessage.AVIMMessageStatus.AVIMMessageStatusReceipt);
 AVConversationHolder conversation = session.getConversationHolder(conversationId, convType);
 conversation.onMessageReceipt(msg);
}
origin: cn.leancloud/realtime-core

AVSession.Status prevStatus = session.getCurrentStatus();
session.setSessionStatue(AVSession.Status.Opened);
 session.updateRealtimeSessionToken(command.getSt(), Integer.valueOf(command.getStTtl()));
session.updateRealtimeSessionToken(command.getSt(), Integer.valueOf(command.getStTtl()));
origin: cn.leancloud/realtime-core

private boolean checkSessionStatus(Conversation.AVIMOperation operation, int requestId) {
 if (session.getCurrentStatus() == AVSession.Status.Closed) {
  RuntimeException se = new RuntimeException("Connection Lost");
  InternalConfiguration.getOperationTube().onOperationCompleted(session.getSelfPeerId(), conversationId,
      requestId, operation, se);
  return false;
 } else {
  return true;
 }
}
origin: cn.leancloud/realtime-core

private void cleanSession(AVSession session) {
 AVSessionCacheHelper.getTagCacheInstance().removeSession(session.getSelfPeerId());
 session.setSessionStatue(AVSession.Status.Closed);
 // 如果session都已不在,缓存消息静静地等到桑田沧海
 session.cleanUp();
 AVSessionManager.getInstance().removeSession(session.getSelfPeerId());
}
origin: cn.leancloud/realtime-core

/**
 * 处理 v2 版本中 conversation 的 deliveredAt 事件
 * @param conversationId
 * @param timestamp
 */
private void processConversationDeliveredAt(String conversationId, int convType, long timestamp) {
 AVConversationHolder conversation = session.getConversationHolder(conversationId, convType);
 conversation.onConversationDeliveredAtEvent(timestamp);
}
origin: cn.leancloud/realtime-core

private void processAckCommand(String peerId, Integer requestKey, Messages.AckCommand ackCommand) {
 session.setServerAckReceived(System.currentTimeMillis() / 1000);
 long timestamp = ackCommand.getT();
 final Message m = session.pendingMessages.poll(String.valueOf(requestKey));
 if (ackCommand.hasCode()) {
  // 这里是发送消息异常时的ack
  this.onAckError(requestKey, ackCommand, m);
 } else {
  if (null != m && !StringUtil.isEmpty(m.cid)) {
   AVConversationHolder conversation = session.getConversationHolder(m.cid, Conversation.CONV_TYPE_NORMAL);
   session.conversationOperationCache.poll(requestKey);
   String msgId = ackCommand.getUid();
   conversation.onMessageSent(requestKey, msgId, timestamp);
   if (m.requestReceipt) {
    m.timestamp = timestamp;
    m.id = msgId;
    MessageReceiptCache.add(session.getSelfPeerId(), msgId, m);
   }
  }
 }
}
private void processRcpCommand(String peerId, Messages.RcpCommand rcpCommand) {
origin: cn.leancloud/realtime-core

 @Override
 public Signature computeSignature() throws SignatureFactory.SignatureException {
  SignatureFactory signatureFactory = AVIMOptions.getGlobalOptions().getSignatureFactory();
  if (null == signatureFactory && !StringUtil.isEmpty(getUserSessionToken())) {
   signatureFactory = new AVUserSignatureFactory(getUserSessionToken());
  }
  if (null != signatureFactory) {
   return signatureFactory.createSignature(getSelfPeerId(), new ArrayList<String>());
  }
  return null;
 }
};
origin: cn.leancloud/realtime-core

public boolean queryClientStatus(String clientId, final AVIMClientStatusCallback callback) {
 LOGGER.d("queryClientStatus...");
 AVIMClient.AVIMClientStatus status = AVIMClient.AVIMClientStatus.AVIMClientStatusNone;
 AVSession session = AVSessionManager.getInstance().getOrCreateSession(clientId);
 if (AVSession.Status.Opened == session.getCurrentStatus()) {
  status = AVIMClient.AVIMClientStatus.AVIMClientStatusOpened;
 } else {
  status = AVIMClient.AVIMClientStatus.AVIMClientStatusPaused;
 }
 if (null != callback) {
  callback.internalDone(status, null);
 }
 return true;
}
origin: cn.leancloud/realtime-core

void onHistoryMessageQuery(ArrayList<AVIMMessage> messages, int requestId, long deliveredAt, long readAt) {
 HashMap<String, Object> bundle = new HashMap<>();
 bundle.put(Conversation.callbackHistoryMessages, messages);
 bundle.put(Conversation.callbackDeliveredAt, deliveredAt);
 bundle.put(Conversation.callbackReadAt, readAt);
 InternalConfiguration.getOperationTube().onOperationCompletedEx(session.getSelfPeerId(), conversationId, requestId,
     AVIMOperation.CONVERSATION_MESSAGE_QUERY, bundle);
 session.sendUnreadMessagesAck(messages, conversationId);
}
origin: cn.leancloud/realtime-core

@Override
public void onSessionOpen(AVSession session, int requestId) {
 // 既然已经成功了,就往缓存里面添加一条记录
 AVSessionCacheHelper.getTagCacheInstance().addSession(session.getSelfPeerId(), session.getTag());
 // 这里需要给AVIMClient那边发一个LocalBoardcastMessage
 if (requestId > CommandPacket.UNSUPPORTED_OPERATION) {
  InternalConfiguration.getOperationTube().onOperationCompleted(session.getSelfPeerId(), null, requestId,
      AVIMOperation.CLIENT_OPEN, null);
 }
}
origin: cn.leancloud/realtime-core

public void cleanUp() {
 updateRealtimeSessionToken("", 0);
 if (pendingMessages != null) {
  pendingMessages.clear();
 }
 if (conversationOperationCache != null) {
  this.conversationOperationCache.clear();
 }
 this.conversationHolderCache.clear();
 MessageReceiptCache.clean(this.getSelfPeerId());
}
origin: cn.leancloud/realtime-core

private void onAckError(Integer requestKey, Messages.AckCommand command, Message m) {
 Operation op = session.conversationOperationCache.poll(requestKey);
 if (op.operation == Conversation.AVIMOperation.CLIENT_OPEN.getCode()) {
  session.setSessionStatue(AVSession.Status.Closed);
 }
 Conversation.AVIMOperation operation = Conversation.AVIMOperation.getAVIMOperation(op.operation);
 int code = command.getCode();
 int appCode = (command.hasAppCode() ? command.getAppCode() : 0);
 String reason = command.getReason();
 AVException error = new AVIMException(code, appCode, reason);
 InternalConfiguration.getOperationTube().onOperationCompleted(session.getSelfPeerId(), op.conversationId,
     requestKey, operation, error);
}
cn.leancloud.sessionAVSession

Most used methods

  • getCurrentStatus
  • queryConversations
  • <init>
  • cleanUp
  • close
  • createConversation
  • getConversationHolder
  • getLastNotifyTime
  • getLastPatchTime
    获取最后接收到 server patch 的时间 按照业务需求,当本地没有缓存此数据时,返回最初始的客户端值
  • getSelfPeerId
  • getTag
  • getUserSessionToken
  • getTag,
  • getUserSessionToken,
  • getWebSocketListener,
  • open,
  • openWithSessionToken,
  • openWithSignature,
  • queryOnlinePeers,
  • removeConversation,
  • renewRealtimeSesionToken,
  • reopen

Popular in Java

  • Creating JSON documents from java classes using gson
  • getExternalFilesDir (Context)
  • notifyDataSetChanged (ArrayAdapter)
  • compareTo (BigDecimal)
  • FileOutputStream (java.io)
    An output stream that writes bytes to a file. If the output file exists, it can be replaced or appen
  • InputStreamReader (java.io)
    A class for turning a byte stream into a character stream. Data read from the source input stream is
  • InetAddress (java.net)
    An Internet Protocol (IP) address. This can be either an IPv4 address or an IPv6 address, and in pra
  • TimeUnit (java.util.concurrent)
    A TimeUnit represents time durations at a given unit of granularity and provides utility methods to
  • JFrame (javax.swing)
  • Options (org.apache.commons.cli)
    Main entry-point into the library. Options represents a collection of Option objects, which describ
  • Github Copilot alternatives
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now