<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">使用Chat GroupChat發送消息</span>
往復的發送消息處於通信的核心地位,兩個類輔助發送消息與接收消息
- org.jivesoftware.smack.Chat --用於在兩個人之間發送消息。
- org.jivesoftware.smack.GroupChat --用於加入聊天室在多個人之間發送消息。
Chat
一個Chat在兩個用戶之間建立一個消息線程(通過線程ID),下面這段代碼用來展示創建一個新的Chat與發送一個條固定內容的消息
// 假設我們已經創建了一個名爲"connection"的XMPPConnection。
Chat newChat = connection.createChat("[email protected]");
newChat.sendMessage("Howdy!");
chat.sendMessage(String messageContent)可以方便的創建一個Message對象,用字符串設置消息的內容,在一定的情況下,你可能希望在消息的發送前設置額外的值使用Chat.CreateMessage 與mChat.sendMessage,如下面代碼片段展示
// 假設我們已經創建了一個名爲"connection"的XMPPConnection。
Chat newChat = connection.createChat("[email protected]");
Message newMessage = newChat.createMessage();
newMessage.setBody("Howdy!");
message.setProperty("favoriteColor", "red");
newChat.sendMessage(newMessage);
Chat對象可以讓您容易的監聽到其他聊天參與者的回覆,下面這段代碼用來展示鸚鵡學舌,他將回復對方輸入的一切消息
// 假設我們已經創建了一個名爲"connection"的XMPPConnection。
Chat newChat = connection.createChat("[email protected]");
newMessage.setBody("Hi, I'm an annoying parrot-bot! Type something back to me.");
while (true) {
// 等待用戶發送給我們的下一條消息。
Message message = newChat.nextMessage();
// 將對方發送過來的消息原樣發送給他。
newChat.sendMessage(message.getBody());
}
以上方法通過chat.nextMessage得到下一條消息,他將等待不知道何時到來的另一條消息,當然還有其他的方法能夠等待特定時間到來的新消息,或者您可以添加消息監聽器,他將每次消息到來的時候,通知你
GroupChat
通過GroupChat將消息內容上傳到服務器的聊天室,您可以在一羣人中發送羣組消息,但是你在接收消息之前,必須在聊天室裏面有一個暱稱,下面這段代碼展示連接到聊天室並且發送消息
// 假設我們已經創建了一個名爲"connection"的XMPPConnection。
GroupChat newGroupChat = connection.createGroupChat("[email protected]");
// 用暱稱"jsmith"加入這處羣。
newGroupChat.join("jsmith");
// 向聊天室中的其它人發送一條消息。
newGroupChat.sendMessage("Howdy!");
通常,在羣中發送和接收消息和在Chat類中非常相似。同時還提供了用於得到聊天室中其它人的列表的方法。