博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于Openfile的客服聊天
阅读量:6216 次
发布时间:2019-06-21

本文共 2346 字,大约阅读时间需要 7 分钟。

图片描述

图片描述

图片描述

android版的客服聊天:

本篇博文只讲了一些开发的思路和流程,具体代码可以看我的 github ,那里有完整的代码。
图片描述

当你下载安装完openfile ,启动后,再安装一款类似于 qq 的 Spark软件,然后在另一条电脑也安装上 Spark 软件,注册账号并添加对方为好友,久可以做即时聊天了。

而我们这篇博文讲的是 Android 版手机端的客服聊天,所以服务器那边就用 Spark 软件做通讯,而用户就是手机端

首先呢,你需要在 eclipse 的 libs 下 导入下面两个 jar 包 ,Android Studio 也一样,环境配一下就好了

图片描述

从上面的效果图来看可分为几部分功能:

1、全局消息的监听   ----  有可能你会想到是不是 利用 broadcase 像监听来电提醒那样监听推送过了的消息,不是!2、listview 对数据的显示  ---- 与以往的 listview 显示有所不同它是 有两种不同样式的 item3、表情和文字组合的消息 -- 表情是一张图片怎么和文字组合再一起作为消息发送且使用流量最低

从上面效果图看不出来的功能有以下几部分,俗称后台:

1、数据库对数据的存取  --  一般我是在消息发送前 和 接收 后 都会先对消息进行储存再 显示的2,、用户即时聊天 的 注册、 登录、 登录状态的监听 、推送消息的监听等

基于openfile开发需要注意的几点,哎,全是坑,当初开发也是踩着地雷过来的,希望我的经验能帮助刚接触openfile的开发者一点点帮助吧。

当然你最好是到我的github 把代码下下来再结合本篇文章看,这样效果会比较好。

填坑1:

Config 这个是自定义的一个类,当你的手机和电脑的WiFi相连就可以构成一个局域网,利用电脑当服务器,将openfile安装到你的电脑这台服务器上,手机就可以访问openfile了。
接下去你可能需要改一下手机客户端的 ServerIp 地址,我的电脑是192.168.155.1,看你的电脑是多少,千万不要写 localhost 或是 127.0.0.1 ,这不行的, ServerPort 一般是 5222 。
还有一处我倒腾了很久,就是 chatToService ,我这么是写死了,因为只是客服功能,一对一的。
是 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";// 聊天对象}

填坑2:

刚才上面说了,客户端接收服务器端发过来的消息不是利用 broadcast 进行后台监听的。而是利用回调的方法,注册监听器,当有数据时回调方法。
比如聊天的初始化

private void init(String _userJID) {        if (chat == null) {            chat = chatmanger.createChat(_userJID, messagelistener);        } else {            chat.addMessageListener(messagelistener);        }    }
chat.addMessageListener(messagelistener); 就是注册监听器

监听类

/**     * 监听消息(内部类)        *      * @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());            }        }    }
当有消息时就会执行回调方法 processMessage(Chat chat, Message message)

具体代码还是看我的github 吧,里面也有详细的注释:

参考代码有:

转载地址:http://bnlja.baihongyu.com/

你可能感兴趣的文章
php长链接
查看>>
JavaScript变量和作用域
查看>>
Spring Boot 2.0(七):Spring Boot 如何解决项目启动时初始化资源
查看>>
一篇文章带你了解js作用域
查看>>
ikbc G87&104 双子座 使用说明书
查看>>
Substring with Concatenation of All Words
查看>>
Eclipse JAVA文件注释乱码
查看>>
ASP.NET MVC5+EF6+EasyUI 后台管理系统(64)-补充WebApi与Unity注入-配置文件
查看>>
程序集和反射(C#)
查看>>
Asp.net MVC自定义权限
查看>>
JS 对象机制深剖——new 运算符
查看>>
oracle 11g wm_concat 、 listagg 函数的使用(合并数据)
查看>>
js获取宽度设置thickbox百分比
查看>>
windows下如何安装和启动MySQL
查看>>
SQL Server误区30日谈-Day29-有关堆碎片的误区
查看>>
【转】MyEclipse快捷键大全
查看>>
C#下如何实现服务器+客户端的聊天程序
查看>>
Android界面刷新的方法
查看>>
Linux中inet_aton的问题(IP转整数)
查看>>
tp5下通过composer实现日志记录功能
查看>>