资讯专栏INFORMATION COLUMN

基于Openfile的客服聊天

3fuyu / 2971人阅读

摘要:版的客服聊天本篇博文只讲了一些开发的思路和流程,具体代码可以看我的,那里有完整的代码。当你下载安装完,启动后,再安装一款类似于的软件,然后在另一条电脑也安装上软件,注册账号并添加对方为好友,久可以做即时聊天了。


android版的客服聊天:
本篇博文只讲了一些开发的思路和流程,具体代码可以看我的 github ,那里有完整的代码。

当你下载安装完openfile ,启动后,再安装一款类似于 qq 的 Spark软件,然后在另一条电脑也安装上 Spark 软件,注册账号并添加对方为好友,久可以做即时聊天了。
而我们这篇博文讲的是 Android 版手机端的客服聊天,所以服务器那边就用 Spark 软件做通讯,而用户就是手机端

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

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

</>复制代码

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

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

</>复制代码

  1. 1、数据库对数据的存取 -- 一般我是在消息发送前 和 接收 后 都会先对消息进行储存再 显示的
  2. 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

</>复制代码

  1. public class Config {
  2. public static String ServerIp = "192.168.155.1";
  3. public static int ServerPort = 5222 ;
  4. public static final int TYPE_RECEIVER_TXT = 0;
  5. public static final int TYPE_SEND_TXT = 1;
  6. public static String userAccount = "userAccount";
  7. public static String userPassword = "123456";
  8. public static String chatToService = "ztc123@127.0.0.1";// 聊天对象
  9. }

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

</>复制代码

  1. private void init(String _userJID) {
  2. if (chat == null) {
  3. chat = chatmanger.createChat(_userJID, messagelistener);
  4. } else {
  5. chat.addMessageListener(messagelistener);
  6. }
  7. }

</>复制代码

  1. chat.addMessageListener(messagelistener);
  2. 就是注册监听器

监听类

</>复制代码

  1. /**
  2. * 监听消息(内部类)
  3. *
  4. * @author michael
  5. *
  6. */
  7. class NewMessageListener implements MessageListener {
  8. // 消息bean
  9. @Override
  10. public void processMessage(Chat chat, Message message) {
  11. if(messageInterface != null){
  12. messageInterface.getOnlineMessage(message.getBody());
  13. }
  14. if(totalMessageInterface != null){
  15. totalMessageInterface.getTotalOnlineMessage(message.getBody());
  16. }
  17. }
  18. }

</>复制代码

  1. 当有消息时就会执行回调方法 processMessage(Chat chat, Message message)

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

github
https://github.com/ZengTianShengZ/custom...

参考代码有:
bmob 即时聊天案例源码:
Stark-Industry/openfire_androidIM

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/65714.html

相关文章

  • 基于workerman+gatawayworker+thinkphp5搭建客服系统

    摘要:搭建的客服系统体验地址仓库客户端接入添加样式文件添加和文件添加目标代码,样式可根据需求自定义咨询客服默认显示一个客服初始化客服分组聊天服务器地址表情包路径图片上传路径如果需要展示多个客服,那么需要这么修改售前客服售后客服初始化前 laykefu thinkphp5+Gatewayworker搭建的web客服系统体验地址:http://laykefu.guoshanchina.comgi...

    zhjx922 评论0 收藏0
  • 基于workerman+gatawayworker+thinkphp5搭建客服系统

    摘要:搭建的客服系统体验地址仓库客户端接入添加样式文件添加和文件添加目标代码,样式可根据需求自定义咨询客服默认显示一个客服初始化客服分组聊天服务器地址表情包路径图片上传路径如果需要展示多个客服,那么需要这么修改售前客服售后客服初始化前 laykefu thinkphp5+Gatewayworker搭建的web客服系统体验地址:http://laykefu.guoshanchina.comgi...

    Lin_YT 评论0 收藏0

发表评论

0条评论

3fuyu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<