org.jivesoftware.smack.packet.Message类的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(14.6k)|赞(0)|评价(0)|浏览(150)

本文整理了Java中org.jivesoftware.smack.packet.Message类的一些代码示例,展示了Message类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Message类的具体详情如下:
包路径:org.jivesoftware.smack.packet.Message
类名称:Message

Message介绍

[英]Represents XMPP message packets. A message can be one of several types:

  • Message.Type.NORMAL -- (Default) a normal text message used in email like interface.
  • Message.Type.CHAT -- a typically short text message used in line-by-line chat interfaces.
  • Message.Type.GROUP_CHAT -- a chat message sent to a groupchat server for group chats.
  • Message.Type.HEADLINE -- a text message to be displayed in scrolling marquee displays.
  • Message.Type.ERROR -- indicates a messaging error.
    For each message type, different message fields are typically used as follows:

Message Types Message typeFieldNormalChatGroup ChatHeadlineXMPPErrorsubjectSHOULDSHOULD NOTSHOULD NOTSHOULD NOTSHOULD NOTthreadOPTIONALSHOULDOPTIONALOPTIONALSHOULD NOTbodySHOULDSHOULDSHOULDSHOULDSHOULD NOTerrorMUST NOTMUST NOTMUST NOTMUST NOTMUST
[中]表示XMPP消息包。消息可以是以下几种类型之一:
*留言。类型普通--(默认)在类似电子邮件的界面中使用的普通文本消息。
*留言。类型聊天——一种通常用于逐行聊天界面的短文本消息。
*留言。类型群组聊天——发送到群组聊天服务器进行群组聊天的聊天信息。
*留言。类型标题——在滚动字幕显示中显示的文本消息。
*留言。类型错误——表示消息传递错误。
对于每种消息类型,通常使用不同的消息字段,如下所示:
消息类型消息类型字段NormalChatGroup ChatHeadIndexMPPerr或子对象不应不应不应不应不应线程选项应不应选项不应正文应不应不应不应不应不应不应不应错误

代码示例

代码示例来源:origin: igniterealtime/Smack

@Override
protected synchronized void writeToXML(DataPacketExtension data) throws NotConnectedException, InterruptedException {
  // create message stanza containing data packet
  Message message = new Message(remoteJID);
  message.addExtension(data);
  connection.sendStanza(message);
}

代码示例来源:origin: igniterealtime/Smack

private static void send(String messageString, XMPPConnection from, XMPPConnection to)
        throws NotConnectedException, InterruptedException {
  Message message = new Message(to.getUser());
  message.setBody(messageString);
  from.sendStanza(message);
}

代码示例来源:origin: igniterealtime/Smack

/**
 * Returns the default body of the message, or null if the body has not been set. The body
 * is the main message contents.
 * <p>
 * The default body of a message is the body that corresponds to the message's language.
 * (see {@link #getLanguage()}) or if no language is set to the applications default
 * language (see {@link Stanza#getDefaultLanguage()}).
 *
 * @return the body of the message.
 */
public String getBody() {
  return getBody(language);
}

代码示例来源:origin: igniterealtime/Smack

/**
 * Sends a Message to the chat room.
 *
 * @param message the message.
 * @throws NotConnectedException
 * @throws InterruptedException
 */
public void sendMessage(Message message) throws NotConnectedException, InterruptedException {
  message.setTo(room);
  message.setType(Message.Type.groupchat);
  connection.sendStanza(message);
}

代码示例来源:origin: igniterealtime/Smack

@Test
public void checkMamQueryResults() throws Exception {
  Message message = new Message();
  message.setStanzaId("iasd207");
  message.setFrom(JidCreate.from("coven@chat.shakespeare.lit"));
  message.setTo(JidCreate.from("hag66@shakespeare.lit/pda"));
  GregorianCalendar calendar = new GregorianCalendar(2002, 10 - 1, 13, 23, 58, 37);
  calendar.setTimeZone(TimeZone.getTimeZone("UTC"));
  Date date = calendar.getTime();
  DelayInformation delay = new DelayInformation(date);
  Message forwardedMessage = new Message();
  forwardedMessage.setFrom(JidCreate.from("coven@chat.shakespeare.lit/firstwitch"));
  forwardedMessage.setStanzaId("162BEBB1-F6DB-4D9A-9BD8-CFDCC801A0B2");
  forwardedMessage.setType(Type.chat);
  forwardedMessage.setBody("Thrice the brinded cat hath mew.");
  Forwarded forwarded = new Forwarded(delay, forwardedMessage);
  message.addExtension(new MamResultExtension("g27", "34482-21985-73620", forwarded));
  // FIXME: The order of assertEquals is reversed, fix it by switching it.
  Assert.assertEquals(message.toXML(StreamOpen.CLIENT_NAMESPACE).toString(), mamQueryResultExample);
  MamResultExtension mamResultExtension = MamResultExtension.from(message);
  Assert.assertEquals(mamResultExtension.getId(), "34482-21985-73620");
  Assert.assertEquals(mamResultExtension.getForwarded().getDelayInformation().getStamp(), date);
  Message resultMessage = (Message) mamResultExtension.getForwarded().getForwardedStanza();
  Assert.assertEquals(resultMessage.getFrom(), JidCreate.from("coven@chat.shakespeare.lit/firstwitch"));
  Assert.assertEquals(resultMessage.getStanzaId(), "162BEBB1-F6DB-4D9A-9BD8-CFDCC801A0B2");
  Assert.assertEquals(resultMessage.getType(), Type.chat);
  Assert.assertEquals(resultMessage.getBody(), "Thrice the brinded cat hath mew.");
}

代码示例来源:origin: igniterealtime/Smack

org.jivesoftware.smack.chat.Chat chat = org.jivesoftware.smack.chat.ChatManager.getInstanceFor(conOne).createChat(conTwo.getUser(), null);
StanzaCollector collector = conOne.createStanzaCollector(
    new ThreadFilter(chat.getThreadID()));
StanzaCollector collector2 = conTwo.createStanzaCollector(
    new ThreadFilter(chat.getThreadID()));
Message msg = new Message();
msg.setBody("To enter a case please fill out this form and send it back to me");
msg.addExtension(formToSend.getDataFormToSend());
  completedForm.setAnswer("age", 20);
  msg2 = new Message();
  msg2.setTo(conOne.getUser().asBareJid());
  msg2.setThread(msg.getThread());
  msg2.setType(Message.Type.chat);
  msg2.setBody("To enter a case please fill out this form and send it back to me");
  msg2.addExtension(completedForm.getDataFormToSend());
  conTwo.sendStanza(msg2);

代码示例来源:origin: spring-projects/spring-integration

@Override
protected Map<String, Object> extractStandardHeaders(Message source) {
  Map<String, Object> headers = new HashMap<>();
  Jid from = source.getFrom();
  if (from != null) {
    headers.put(XmppHeaders.FROM, from.toString());
  }
  String subject = source.getSubject();
  if (StringUtils.hasText(subject)) {
    headers.put(XmppHeaders.SUBJECT, subject);
  }
  String thread = source.getThread();
  if (StringUtils.hasText(thread)) {
    headers.put(XmppHeaders.THREAD, thread);
  }
  Jid to = source.getTo();
  if (to != null) {
    headers.put(XmppHeaders.TO, to.toString());
  }
  Message.Type type = source.getType();
  if (type != null) {
    headers.put(XmppHeaders.TYPE, type);
  }
  return headers;
}

代码示例来源:origin: igniterealtime/Smack

@Test
public void checkMarkableExtension() throws Exception {
  Message message = new Message(JidCreate.from("ingrichard@royalty.england.lit/throne"));
  message.setStanzaId("message-1");
  message.setBody("My lord, dispatch; read o'er these articles.");
  message.addExtension(ChatMarkersElements.MarkableExtension.INSTANCE);
  Assert.assertEquals(markableMessageStanza, message.toXML(null).toString());
}

代码示例来源:origin: igniterealtime/Smack

Message message = new Message();
message.setStanzaId(parser.getAttributeValue("", "id"));
message.setTo(ParserUtils.getJidAttribute(parser, "to"));
message.setFrom(ParserUtils.getJidAttribute(parser, "from"));
String typeString = parser.getAttributeValue("", "type");
if (typeString != null) {
  message.setType(Message.Type.fromString(typeString));
message.setLanguage(language);
      String subject = parseElementText(parser);
      if (message.getSubject(xmlLangSubject) == null) {
        message.addSubject(xmlLangSubject, subject);
      message.setError(parseError(parser));
      break;
     default:
message.setThread(thread);

代码示例来源:origin: Blazemeter/jmeter-bzm-plugins

private void sendResponseMessage(Message inMsg) {
  Message outMsg = new Message(inMsg.getFrom());
  outMsg.setType(inMsg.getType());
  outMsg.addBody("", inMsg.getBody() + "\r\n" + System.currentTimeMillis() + "@" + RESPONSE_MARKER);
  log.debug("Responding to message: " + outMsg.toXML());
  try {
    conn.sendPacket(outMsg);
  } catch (SmackException e) {
    log.error("Failed to send response", e);
  }
}

代码示例来源:origin: igniterealtime/Smack

/**
 * Send an empty OMEMO message to contactsDevice in order to forward the ratchet.
 * @param managerGuard
 * @param contactsDevice
 * @throws CorruptedOmemoKeyException if our or their OMEMO key is corrupted.
 * @throws InterruptedException
 * @throws SmackException.NoResponseException
 * @throws NoSuchAlgorithmException if AES encryption fails
 * @throws SmackException.NotConnectedException
 * @throws CryptoFailedException if encryption fails (should not happen though, but who knows...)
 * @throws CannotEstablishOmemoSessionException if we cannot establish a session with contactsDevice.
 */
private void sendRatchetUpdate(OmemoManager.LoggedInOmemoManager managerGuard, OmemoDevice contactsDevice)
    throws CorruptedOmemoKeyException, InterruptedException, SmackException.NoResponseException,
    NoSuchAlgorithmException, SmackException.NotConnectedException, CryptoFailedException,
    CannotEstablishOmemoSessionException {
  OmemoManager manager = managerGuard.get();
  OmemoElement ratchetUpdate = createRatchetUpdateElement(managerGuard, contactsDevice);
  Message m = new Message();
  m.setTo(contactsDevice.getJid());
  m.addExtension(ratchetUpdate);
  manager.getConnection().sendStanza(m);
}

代码示例来源:origin: spring-projects/spring-ws

@Override
protected void onSendBeforeWrite(WebServiceMessage message) throws IOException {
  responseMessage = new Message(requestMessage.getFrom(), Message.Type.chat);
  responseMessage.setFrom(connection.getUser());
  responseMessage.setThread(requestMessage.getThread());
}

代码示例来源:origin: igniterealtime/Smack

if (original.getThread() != null) {
  reply.setThread(original.getThread());
  reply.setTo(replyAddress.getJid());
  connection.sendStanza(reply);
  if (!to.contains(original.getFrom()) && !cc.contains(original.getFrom())) {
    to.add(original.getFrom());
  EntityFullJid from = connection.getUser();
  if (!to.remove(from) && !cc.remove(from)) {
    EntityBareJid bareJID = from.asEntityBareJid();

代码示例来源:origin: igniterealtime/Smack

/**
   * Create and return a new message including a delivery receipt extension for the given message.
   * <p>
   * If {@code messageWithReceiptRequest} does not have a Stanza ID set, then {@code null} will be returned.
   * </p>
   *
   * @param messageWithReceiptRequest the given message with a receipt request extension.
   * @return a new message with a receipt or <code>null</code>.
   * @since 4.1
   */
  public static Message receiptMessageFor(Message messageWithReceiptRequest) {
    String stanzaId = messageWithReceiptRequest.getStanzaId();
    if (StringUtils.isNullOrEmpty(stanzaId)) {
      return null;
    }
    Message message = new Message(messageWithReceiptRequest.getFrom(), messageWithReceiptRequest.getType());
    message.addExtension(new DeliveryReceipt(stanzaId));
    return message;
  }
}

代码示例来源:origin: igniterealtime/Smack

private static Message createChatPacket(final String threadId, final boolean isEntityFullJid) {
  Message chatMsg = new Message(JidTestUtil.BARE_JID_1, Message.Type.chat);
  chatMsg.setBody("the body message - " + System.currentTimeMillis());
  Jid jid;
  if (isEntityFullJid) {
    jid = JidTestUtil.DUMMY_AT_EXAMPLE_ORG_SLASH_DUMMYRESOURCE;
  } else {
    jid = JidTestUtil.DUMMY_AT_EXAMPLE_ORG;
  }
  chatMsg.setFrom(jid);
  chatMsg.setThread(threadId);
  return chatMsg;
}

代码示例来源:origin: spring-projects/spring-integration

@Test
public void toHeadersStandardOnly() throws XmppStringprepException {
  DefaultXmppHeaderMapper mapper = new DefaultXmppHeaderMapper();
  Message source = new Message(JidCreate.from("test.to"), Message.Type.headline);
  source.setFrom(JidCreate.from("test.from"));
  source.setSubject("test.subject");
  source.setThread("test.thread");
  JivePropertiesManager.addProperty(source, "userDefined1", "foo");
  JivePropertiesManager.addProperty(source, "userDefined2", "bar");
  Map<String, Object> headers = mapper.toHeadersFromRequest(source);
  assertEquals("test.to", headers.get(XmppHeaders.TO).toString());
  assertEquals("test.from", headers.get(XmppHeaders.FROM).toString());
  assertEquals("test.subject", headers.get(XmppHeaders.SUBJECT));
  assertEquals("test.thread", headers.get(XmppHeaders.THREAD));
  assertEquals(Message.Type.headline, headers.get(XmppHeaders.TYPE));
  assertNull(headers.get("userDefined1"));
  assertNull(headers.get("userDefined2"));
}

代码示例来源:origin: igniterealtime/Smack

public void send(CharSequence message) throws NotConnectedException, InterruptedException {
  Message stanza = new Message();
  stanza.setBody(message);
  stanza.setType(Message.Type.chat);
  send(stanza);
}

代码示例来源:origin: spring-projects/spring-integration

@Test
public void validateMessagePostAsSmackMessage() throws Exception {
  XMPPConnection connection = mock(XMPPConnection.class);
  ChatMessageSendingMessageHandler handler = new ChatMessageSendingMessageHandler(connection);
  handler.setBeanFactory(mock(BeanFactory.class));
  handler.afterPropertiesSet();
  org.jivesoftware.smack.packet.Message smackMessage =
      new org.jivesoftware.smack.packet.Message(JidCreate.from("kermit@frog.com"));
  smackMessage.setBody("Test Message");
  Message<?> message = MessageBuilder.withPayload(smackMessage).build();
  // first Message new
  handler.handleMessage(message);
  verify(connection, times(1)).sendStanza(smackMessage);
  // assuming we know thread ID although currently we do not provide this capability
  smackMessage = new org.jivesoftware.smack.packet.Message(JidCreate.from("kermit@frog.com"));
  smackMessage.setBody("Hello Kitty");
  smackMessage.setThread("123");
  message = MessageBuilder.withPayload(smackMessage).build();
  reset(connection);
  handler.handleMessage(message);
  // in threaded conversation we need to look for existing chat
  verify(connection, times(1)).sendStanza(smackMessage);
}

代码示例来源:origin: igniterealtime/Smack

/**
   * Return the OmemoElement wrapped in a Message ready to be sent.
   * The message is addressed to recipient, contains the OmemoElement
   * as well as an optional clear text hint as body, a MAM storage hint
   * and an EME hint about OMEMO encryption.
   *
   * @param recipient recipient for the to-field of the message.
   * @return Message
   */
  public Message asMessage(Jid recipient) {
    Message messageStanza = new Message(recipient, Message.Type.chat);
    messageStanza.addExtension(getElement());
    if (OmemoConfiguration.getAddOmemoHintBody()) {
      messageStanza.setBody(BODY_OMEMO_HINT);
    }
    StoreHint.set(messageStanza);
    messageStanza.addExtension(new ExplicitMessageEncryptionElement(OMEMO_NAMESPACE_V_AXOLOTL, OMEMO));
    return messageStanza;
  }
}

代码示例来源:origin: igniterealtime/Smack

@Test
public void setMessageTypeTest() throws IOException, SAXException {
  Message.Type type = Message.Type.chat;
  Message.Type type2 = Message.Type.headline;
  StringBuilder controlBuilder = new StringBuilder();
  controlBuilder.append("<message")
      .append(" type=\"")
      .append(type)
      .append("\">")
      .append("</message>");
  String control = controlBuilder.toString();
  Message messageTypeInConstructor = new Message(null, Message.Type.chat);
  messageTypeInConstructor.setStanzaId(null);
  assertEquals(type, messageTypeInConstructor.getType());
  assertXMLEqual(control, messageTypeInConstructor.toXML(StreamOpen.CLIENT_NAMESPACE).toString());
  controlBuilder = new StringBuilder();
  controlBuilder.append("<message")
      .append(" type=\"")
      .append(type2)
      .append("\">")
      .append("</message>");
  control = controlBuilder.toString();
  Message messageTypeSet = getNewMessage();
  messageTypeSet.setType(type2);
  assertEquals(type2, messageTypeSet.getType());
  assertXMLEqual(control, messageTypeSet.toXML(StreamOpen.CLIENT_NAMESPACE).toString());
}

相关文章