1. 程式人生 > >基於XMPP協議聊天程式【Openfire+asmark】

基於XMPP協議聊天程式【Openfire+asmark】

    本文章提供了實現IM聊天程式最基礎的配置和使用案例,可以實現點對點聊天。可做為入門閱讀使用。文章轉載請註明來源:http://blog.csdn.net/fengfeng91微笑

:搭建伺服器:

官方網站下載openfire伺服器安裝。配置密碼,許可權,資料庫(內建資料庫或者新增外部資料庫支援Mysql

注意如果配置外部資料庫,需先保證資料庫服務已被開啟,才能保證伺服器開啟。

Windows環境下開啟丟擲異常/亂碼時,關閉伺服器,以管理員身份執行,當出現以下提示時,表示伺服器啟動成功。

Openfire 3.9.1 [2014-5-27 16:00:15]

XXXX:

  http://zhaofengpc:9090

  https://zhaofengpc:9091

以下是openfire預設各個埠:

介面

型別

描述

所有的地址

5222

客戶端到伺服器

客戶端使用標準埠連線到伺服器,連線可能沒有加密,您可以更新安全設定 為這個埠

所有的地址

5223

客戶端到伺服器

客戶端使用舊的SSL方法連線到伺服器的埠。舊的SSL方法不是一個XMPP標準方法,在不久將不被支援,您可以更新安全設定 為這個埠

所有的地址

9090

管理控制檯

埠使用不安全的管理控制檯訪問.

所有的地址

9091

管理控制檯

埠使用安全的管理控制檯訪問.

所有的地址

7777

檔案傳送代理伺服器

代理服務使用的埠允許在XMPP網路上的兩個實體使用檔案傳送

所有的地址

7070

HTTP繫結

使用不安全的HTTP客戶端連線埠

所有的地址

7443

HTTP繫結

使用安全的HTTP客戶端連線埠

所有的地址

5229

Flash Cross Domain

Service that allows Flash clients connect to other hostnames and ports.

通過Openfire管理控制檯管理使用者和伺服器:http://127.0.0.1:9090/index.jsp

安裝smark電腦客戶端用於開發測試。

如何使用SDK

二:客戶端使用者登陸、會話

與伺服器建立連線

//連線配置  openfire伺服器地址及埠號

    XMPPConnection con = newXMPPConnection();

ConnectionConfiguration

            connConfig=new ConnectionConfiguration("192.168.191.1",5222);

con = new XMPPConnection(connConfig);

con.connect();

使用者登陸

//登陸

con.login(“UserName”, “Psw”);

Presence presence = new Presence(Presence.Type.available);

con.sendPacket(presence);

con.disconnect();//登陸成功後,關閉連線(登陸成功,失敗的判斷處理用異常抓取來實現)

*以上僅是最基礎的配置,實際運用在需要運用單例模式,多執行緒,hanlder來處理邏輯

建立會話---接收訊息

/**
 * 
 * @Title: createAChart
 * @Description: TODO(和聯絡人建立一個會話監聽處理)
 * @author [email protected]  
 * @date 2014-5-8 下午3:11:35 void  返回型別
 * @throws
 */
	private void createAChart(String friend){
		if (cm == null) {
			cm = XmppTool.getConnection().getChatManager();
		}
		newchat = cm.createChat("[email protected]", null);
		cm.addChatListener(new ChatManagerListener() {
			@Override
			public void chatCreated(Chat chat, boolean able) 
			{
				chat.addMessageListener(new MessageListener() {
					@Override
					public void processMessage(Chat chat2, Message message){
						if(message.getFrom().contains("[email protected]"))//收到來自zhaofengpc伺服器xx的訊息(獲取自己的伺服器,和好友)
						{
							String[] args = new String[] { 
									"clienta", //獲取使用者
									message.getBody(),//訊息
									TimeRender.getDate(),//時間
									"IN" //型別IN--接收
									};
							android.os.Message msg = handler.obtainMessage();//在handler裡取出來顯示訊息
							msg.what = 1;
							msg.obj = args;
							msg.sendToTarget();
						}else{
							//message.getFrom().cantatins(獲取列表上的使用者,組,管理訊息);
						}
					}
				});
			}
		});
	}


參考專案:

注意*這裡一個完整的使用者名稱是由 使用者名稱稱[email protected]+伺服器名稱(安裝時預設取電腦名稱)


相關推薦

基於XMPP協議聊天程式Openfire+asmark

    本文章提供了實現IM聊天程式最基礎的配置和使用案例,可以實現點對點聊天。可做為入門閱讀使用。文章轉載請註明來源:http://blog.csdn.net/fengfeng91 一:搭建伺服

JavaSE基礎小結--1---基於TCP的聊天程式

伺服器程式碼: Code: package cn.itcast.chat;    import java.awt.Frame;    import java.awt.TextArea;    i

基於XMPP協議的整合開發環境的搭建與配置

本文只討論有關整合環境的搭建和配置,並不設計XMPP協議的具體資訊和用法 (1)將XMPP框架匯入工程中,需匯入整個資料夾 (2)在工程中新增兩個框架libresolv.9.dylib和libxml2

(iOS)基於XMPP協議的簡單IM實現

【  ********************************************************************************** 有網友在資源那留言,但是自己無法評論自己的資源,故在此說明:1、當初只是簡單的學習XMPP,通過自己做了個小Demo來了解其原理,進攻各

基於JAVA的聊天程式

之前JAVA老師佈置的大作業,自選標題,然後我選的是實現一個聊天軟體,使用JAVAFX來做介面(跟SWING差不多,但是可以用CSS來美化介面,而且拖入式佈局比較方便),實現的功能有登入註冊,找回密碼,更改頭像,傳送接收訊息,檢視好友資料,修改好友備註,好友是否線上的提示,訊

百度大腦和圖靈機器人制作一個簡單的自動聊天機器人PHP程式碼

可以和機器人聊天 文字傳送訊息 網頁進行語音回覆 這裡主要用到了兩個介面 一個是百度大腦  用來實現語音合成 一個是圖靈機器人用來實現自動聊天 以下是程式碼分兩個版本 版本一是沒有語音合成 版本二是加上語音合成功能 php版本最低5.5 版本一: <?

boost asio非同步讀寫網路聊天官方示例

// // chat_message.hpp // ~~~~~~~~~~~~~~~~ // // Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distri

解除安裝軟體失敗:“1628:完成基於指令碼的安裝失敗”已解決

最近在解除安裝軟體時,由於中途卡住了,於是在工作管理員中直接殺掉了刪除程式的程序。重新點選解除安裝軟體時,出現報錯:“1628:完成基於指令碼的安裝失敗”,解除安裝失敗。 結合以下兩位網友的方法: https://zhidao.baidu.com/question/62366

練習題編寫打印出一個單鏈表的所有元素的程式連結串列

只是實現了連結串列ADT的部分功能。 /*---編寫打印出一個單鏈表的所有元素的程式---*/ #include <stdio.h> #include <stdlib.h> struct Node{ int val; struct Node *

最簡單的servlet程式使用Eclipse

新建工程:選擇Tomcat project,工程名:Practice 在src目錄下新建java程式,名為FirstServlet.java,程式碼如下: import java.io.*; import javax.servlet.*; import javax.servl

ASP.NET CORE 2.0在CentOS上部署ASP.NET CORE 2.0程式超詳細

突然來的需求,讓以前ASP.NET寫的系統要部署到Linux上,所以研究了一下。 1. 安裝CentOS 網上一搜一大把,我是在虛擬機器上安裝的。可以參考 2. 安裝.NET CORE SDK for CentOS 7 2.1 新增.NET相

每日一個C++小程式趣味篇--C++繪畫小程式

#include <iostream> #include <stdio.h> #include <stdlib.h> #include <time.h> #define Y_MAX 30 #define X_MAX Y_MA

JAVA——基於TCP協議的文字聊天程式

基於TCP協議的文字聊天程式 1.要求 使用JAVA完成一個基於TCP協議的文字聊天程式,建立TCP客戶端套接字,分別為服務端和客戶端,並使兩端可以互聯。 2.TCP協議 在TCP協議中,有伺服器端(Server端)和客戶端(Client端)的概念。TCP傳輸資料的

JAVA——基於UDP協議的文字聊天程式

基於UDP協議的文字聊天程式 1.要求 使用JAVA完成一個基於TCP協議的文字聊天程式,建立TCP客戶端套接字,分別為服務端和客戶端,並使兩端可以互聯。 2.UDP協議 在UDP協議中,沒有TCP中所謂的伺服器端和客戶端,而是有資料的傳送端和接收端。也就是說UDP

SpringBoot整合WebSocket基於STOMP協議進行點對點[一對一]和廣播[一對多]實時推送,內附簡易聊天室demo

最近專案來了新需求,需要做一個實時推送的功能,伺服器主動推送訊息給客戶端,在網上經過一輪搜查之後,確定使用WebSocket來進行開發。以前經常聽說WebSocket的神奇之處,如今終於可以嘗試使用它了。1.淺談WebSocketWebSocket是在HTML5基礎上單個TC

Java基於TCP協議多執行緒伺服器-客戶端互動控制檯聊天室簡例

      前兩天想到一個手機APP專案,使用到藍芽,發現BluetoothSocket和J2EE網路變成的Socket差不多,使用之餘順手寫一個多執行緒伺服器與客戶端互動實現聊天室的一個小例子,方便新人學習網路程式設計模組,期間使用到多執行緒和IO輸入輸出流的

15.基於UDP協議聊天程式

使用UDP協議完成一個聊天室程式的小專案,大部分程式碼都有註釋,一看就能看到的. 實現的功能:               (1)檢視/顯示已經登陸的使用者資訊               (2)向已登陸的使用者傳送訊息               (3)輸出錯誤訊息,給

Android基於XMPP Smack Openfire開發IM初步實現兩個客戶端通訊

本部落格要介紹的內容: Openfire做伺服器端,兩個客戶端:Spark、android模擬器。實現兩個客戶端之間的通訊。 第一步:啟動openfire伺服器。(這裡需要用到兩個使用者登入,前面的部落格中已經說明如何新增使用者了。) [img] [/img] 第

Android基於XMPP Smack Openfire開發IM客戶端接收伺服器傳送的訊息

Demo需求:android客戶端接收伺服器傳送來的訊息。 第一,客戶端程式碼如下: MainActivity未做改動,與之前兩篇一樣 Java程式碼   package com.example.openfiretest;   import org.jivesoftware.smack.Chat;

一個簡單的基於udp協議聊天程式

下面,我就介紹一下我開發的一個使用udp協議的網路通訊程式、 程式的要求非常簡單,就是當我們知道對方的ip地址後,我們可以通過命令列輸入對方的ip地址,就可以向對方傳送文字資訊。 程式的使用方式:由命令列開啟程式,命令列有一個可選的引數,即你想要通訊的目標的ip地址(首先要