Updated for new API. Thanks to Michael Hunter.

git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@7042 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
Matt Tucker 2007-02-08 06:12:01 +00:00 committed by matt
parent a5a6697496
commit 85dcb0a5c4
1 changed files with 44 additions and 30 deletions

View File

@ -1,74 +1,88 @@
<html> <html>
<head> <head>
<title>Smack: Chat - Jive Software</title> <title>Smack: Chat - Jive Software</title>
<link rel="stylesheet" type="text/css" href="style.css" /> <link rel="stylesheet" type="text/css" href="style.css"/>
</head> </head>
<body> <body>
<div class="header"> <div class="header">
Messaging using Chats Messaging using Chats
</div> </div>
<div class="nav"> <div class="nav">
&laquo; <a href="index.html">Table of Contents</a> &laquo; <a href="index.html">Table of Contents</a>
</div> </div>
<p> <p>
Sending messages back and forth is at the core of instant messaging. Although individual messages Sending messages back and forth is at the core of instant messaging. Although individual
can be sent and received as packets, it's generally easier to treat the string of messages messages
as a chat using the <tt>org.jivesoftware.smack.Chat</tt> class. can be sent and received as packets, it's generally easier to treat the string of messages
as a chat using the <tt>org.jivesoftware.smack.Chat</tt> class.
</p> </p>
<p class="subheader"> <p class="subheader">
Chat Chat
</p> </p>
A chat creates a new thread of messages (using a thread ID) between two users. The A chat creates a new thread of messages (using a thread ID) between two users. The
following code snippet demonstrates how to create a new Chat with a user and then send following code snippet demonstrates how to create a new Chat with a user and then send
them a text message:<p> them a text message:<p>
<div class="code"><pre> <div class="code"><pre><font color="gray"><i>// Assume we've created an XMPPConnection name
<font color="gray"><i>// Assume we've created an XMPPConnection name "connection".</i></font> "connection".</i></font>
Chat newChat = connection.createChat(<font color="green">"jsmith@jivesoftware.com"</font>, new MessageListener() { ChatManager chatmanager = connection.getChatManager();<br>Chat newChat = chatmanager.createChat(<font
color="green">"jsmith@jivesoftware.com"</font>, new MessageListener() {
public void processMessage(Chat chat, Message message) { public void processMessage(Chat chat, Message message) {
System.out.println(<font color="green">"Received message: "</font> + message); System.out.println(<font color="green">"Received message: "</font> + message);
} }
}); }); <br>try {
chat.sendMessage(<font color="green">"Howdy!"</font>); chat.sendMessage(<font color="green">"Howdy!"</font>); <br>} catch (XMPPException e) {<br> System.out.println(&quot;Error Delivering block&quot;);<br>}<br><br>
</pre></div><p> </pre>
</div>
<p>
The <tt>Chat.sendMessage(String)</tt> method is a convenience method that creates a Message The <tt>Chat.sendMessage(String)</tt> method is a convenience method that creates a Message
object, sets the body using the String parameter, then sends the message. In the case object, sets the body using the String parameter, then sends the message. In the case
that you wish to set additional values on a Message before sending it, use the that you wish to set additional values on a Message before sending it, use the
<tt>Chat.createMessage()</tt> and <tt>Chat.sendMessage(Message)</tt> methods, as in the <tt>Chat.createMessage()</tt> and <tt>Chat.sendMessage(Message)</tt> methods, as in the
following code snippet:<p> following code snippet:
<p>
<div class="code"><pre> <div class="code"><pre>
Message newMessage = newChat.createMessage(); Message newMessage = newChat.createMessage();
newMessage.setBody(<font color="green">"Howdy!"</font>); newMessage.setBody(<font color="green">"Howdy!"</font>);
message.setProperty(<font color="green">"favoriteColor"</font>, <font color="green">"red"</font>); message.setProperty(<font color="green">"favoriteColor"</font>, <font color="green">"red"</font>);
newChat.sendMessage(newMessage); newChat.sendMessage(newMessage);
</pre></div><p> </pre>
</div>
<p>
You'll also notice in the example above that we specified a MessageListener when creating a chat. You'll also notice in the example above that we specified a MessageListener when creating a
The listener is notified any time a new message arrives from the other user in the chat. chat.
The following code snippet uses the listener as a parrot-bot -- it echoes back everything the other user types.<p> The listener is notified any time a new message arrives from the other user in the chat.
The following code snippet uses the listener as a parrot-bot -- it echoes back everything the
other user types.
<p>
<div class="code"><pre> <div class="code"><pre>
<font color="gray"><i> // Assume a MessageListener we've setup with a chat.</i></font> <font color="gray"><i> // Assume a MessageListener we've setup with a chat.</i></font>
public void processMessage(Chat chat, Message message) { public void processMessage(Chat chat, Message message) {
<font color="gray"><i>// Send back the same text the other user sent us.</i></font> <font color="gray"><i>// Send back the same text the other user sent us.</i></font>
chat.sendMessage(message.getBody()); chat.sendMessage(message.getBody());
} }
</pre></div><p> </pre>
</div>
<p>
<br clear="all" /><br><br> <br clear="all"/><br><br>
<div class="footer"> <div class="footer">
Copyright &copy; Jive Software 2002-2007 Copyright &copy; Jive Software 2002-2007
</div> </div>
</body> </body>