摘要:版的客服聊天本篇博文只講了一些開發(fā)的思路和流程,具體代碼可以看我的,那里有完整的代碼。當(dāng)你下載安裝完,啟動(dòng)后,再安裝一款類似于的軟件,然后在另一條電腦也安裝上軟件,注冊(cè)賬號(hào)并添加對(duì)方為好友,久可以做即時(shí)聊天了。
android版的客服聊天:
本篇博文只講了一些開發(fā)的思路和流程,具體代碼可以看我的 github ,那里有完整的代碼。
當(dāng)你下載安裝完openfile ,啟動(dòng)后,再安裝一款類似于 qq 的 Spark軟件,然后在另一條電腦也安裝上 Spark 軟件,注冊(cè)賬號(hào)并添加對(duì)方為好友,久可以做即時(shí)聊天了。
而我們這篇博文講的是 Android 版手機(jī)端的客服聊天,所以服務(wù)器那邊就用 Spark 軟件做通訊,而用戶就是手機(jī)端
首先呢,你需要在 eclipse 的 libs 下 導(dǎo)入下面兩個(gè) jar 包 ,Android Studio 也一樣,環(huán)境配一下就好了
從上面的效果圖來看可分為幾部分功能:
1、全局消息的監(jiān)聽 ---- 有可能你會(huì)想到是不是 利用 broadcase 像監(jiān)聽來電提醒 那樣監(jiān)聽推送過了的消息,不是! 2、listview 對(duì)數(shù)據(jù)的顯示 ---- 與以往的 listview 顯示有所不同它是 有兩種不同樣式的 item 3、表情和文字組合的消息 -- 表情是一張圖片怎么和文字組合再一起作為消息發(fā)送且使用流量最低
從上面效果圖看不出來的功能有以下幾部分,俗稱后臺(tái):
1、數(shù)據(jù)庫對(duì)數(shù)據(jù)的存取 -- 一般我是在消息發(fā)送前 和 接收 后 都會(huì)先對(duì)消息進(jìn)行儲(chǔ)存再 顯示的 2,、用戶即時(shí)聊天 的 注冊(cè)、 登錄、 登錄狀態(tài)的監(jiān)聽 、推送消息的監(jiān)聽等
基于openfile開發(fā)需要注意的幾點(diǎn),哎,全是坑,當(dāng)初開發(fā)也是踩著地雷過來的,希望我的經(jīng)驗(yàn)?zāi)軒椭鷦偨佑|openfile的開發(fā)者一點(diǎn)點(diǎn)幫助吧。
當(dāng)然你最好是到我的github 把代碼下下來再結(jié)合本篇文章看,這樣效果會(huì)比較好。
填坑1:
Config 這個(gè)是自定義的一個(gè)類,當(dāng)你的手機(jī)和電腦的WiFi相連就可以構(gòu)成一個(gè)局域網(wǎng),利用電腦當(dāng)服務(wù)器,將openfile安裝到你的電腦這臺(tái)服務(wù)器上,手機(jī)就可以訪問openfile了。
接下去你可能需要改一下手機(jī)客戶端的 ServerIp 地址,我的電腦是192.168.155.1,看你的電腦是多少,千萬不要寫 localhost 或是 127.0.0.1 ,這不行的, ServerPort 一般是 5222 。
還有一處我倒騰了很久,就是 chatToService ,我這么是寫死了,因?yàn)橹皇强头δ埽粚?duì)一的。
是 ztc123@127.0.0.1 而不是用戶名 ztc123
public class Config { public static String ServerIp = "192.168.155.1"; public static int ServerPort = 5222 ; public static final int TYPE_RECEIVER_TXT = 0; public static final int TYPE_SEND_TXT = 1; public static String userAccount = "userAccount"; public static String userPassword = "123456"; public static String chatToService = "ztc123@127.0.0.1";// 聊天對(duì)象 }
填坑2:
剛才上面說了,客戶端接收服務(wù)器端發(fā)過來的消息不是利用 broadcast 進(jìn)行后臺(tái)監(jiān)聽的。而是利用回調(diào)的方法,注冊(cè)監(jiān)聽器,當(dāng)有數(shù)據(jù)時(shí)回調(diào)方法。
比如聊天的初始化
private void init(String _userJID) { if (chat == null) { chat = chatmanger.createChat(_userJID, messagelistener); } else { chat.addMessageListener(messagelistener); } }
chat.addMessageListener(messagelistener); 就是注冊(cè)監(jiān)聽器
監(jiān)聽類
/** * 監(jiān)聽消息(內(nèi)部類) * * @author michael * */ class NewMessageListener implements MessageListener { // 消息bean @Override public void processMessage(Chat chat, Message message) { if(messageInterface != null){ messageInterface.getOnlineMessage(message.getBody()); } if(totalMessageInterface != null){ totalMessageInterface.getTotalOnlineMessage(message.getBody()); } } }
當(dāng)有消息時(shí)就會(huì)執(zhí)行回調(diào)方法 processMessage(Chat chat, Message message)
具體代碼還是看我的github 吧,里面也有詳細(xì)的注釋:
github
https://github.com/ZengTianShengZ/custom...
參考代碼有:
bmob 即時(shí)聊天案例源碼:
Stark-Industry/openfire_androidIM
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/65714.html
摘要:搭建的客服系統(tǒng)體驗(yàn)地址倉庫客戶端接入添加樣式文件添加和文件添加目標(biāo)代碼,樣式可根據(jù)需求自定義咨詢客服默認(rèn)顯示一個(gè)客服初始化客服分組聊天服務(wù)器地址表情包路徑圖片上傳路徑如果需要展示多個(gè)客服,那么需要這么修改售前客服售后客服初始化前 laykefu thinkphp5+Gatewayworker搭建的web客服系統(tǒng)體驗(yàn)地址:http://laykefu.guoshanchina.comgi...
摘要:搭建的客服系統(tǒng)體驗(yàn)地址倉庫客戶端接入添加樣式文件添加和文件添加目標(biāo)代碼,樣式可根據(jù)需求自定義咨詢客服默認(rèn)顯示一個(gè)客服初始化客服分組聊天服務(wù)器地址表情包路徑圖片上傳路徑如果需要展示多個(gè)客服,那么需要這么修改售前客服售后客服初始化前 laykefu thinkphp5+Gatewayworker搭建的web客服系統(tǒng)體驗(yàn)地址:http://laykefu.guoshanchina.comgi...
閱讀 995·2023-04-25 19:35
閱讀 2634·2021-11-22 09:34
閱讀 3681·2021-10-09 09:44
閱讀 1713·2021-09-22 15:25
閱讀 2932·2019-08-29 14:00
閱讀 3372·2019-08-29 11:01
閱讀 2596·2019-08-26 13:26
閱讀 1735·2019-08-23 18:08