美文网首页程序员
android studio 手写客户端 服务端 实现世界聊天

android studio 手写客户端 服务端 实现世界聊天

作者: 小明同学机器人 | 来源:发表于2019-03-29 18:20 被阅读7次

    简介

    很多初学者都对网络编程很感兴趣但是,也很想实现一个聊天软软件。可以在家中和自己的好朋友聊天 用自己做的软件,那是个什么很开心 的事。这几天写了一个比较简单的一对一聊天。

    首先我先介绍一下整个项目的原理吧。 第一步 先写服务端写一些服务端对客户端发送过来的数据进行处理 我这里大部分都是json解析 。

    第二步 写服务端可能会用到数据库  这里用到了了mysql数据库 对于数据库的基本操作要有了解

    第三步 写客户端  客户端用到了volley包 发送json数据 发送到服务端 服务端解析 给客户端返回数据

    很多项目的原理基本都是这 对于初学者 我觉得这对他们很重要 。

    源码介绍

    虽然不能多客户端操作,但是几百个应该没问题。用户登录注册这块就不拿出来了,直接发核心的一部分。  

    服务端 源码介绍 :

    服务端这块用idea写的 用到的jar包

    idea用到的jar包

    其次部署tomcat 不会部署的小伙伴可以百度一下 都很简单

    然后编写web-INT文件夹里的web.xml,直接在web-app标签里写

    简单介绍下 上图的上半部分是服务端收到客户端的消息 来记录下发送的数据添加到数据库里 name是 send_person_message

    访问路径是http://ip:port/项目名(由自己配置)/send_person_message

    其次编写servlet 类    

    将客户端发送过来的数据转化为JSONObject的一个工具类

     接收客户端发送过来的聊天消息 类

    最上面有个注解 和web.xml里的name对应

    上图的代码功能 将客户端的数据转换为json 然后连接数据库 将客户端的qq_1 qq_2 message_1 message_2 取过来 

    数据库这部分简介               当初写代码太着急 其实不用 message_2  只需要在数据库里添加 qq_1 qq_2 message_1 就ok了,  但是我这么写不会有影响,对了还有一点提醒一下  qq_1的数据类型最好是int 自增长 设置主键 这样可以防止qq号冲突,还有一些办法大家可以自由发挥了.

             接着说将客户端读取过来的数据加入到数据库 在将qq1 qq_2的聊天记录取回来 返回一个集合  

                       String sql ="select * from person_chart where(qq_1=? and qq_2=?) or (qq_1=? and qq_2=?)";

    这相当于读取了聊天记录 也可以每次设置读取最后多少条,因为这里我客户端没用数据库 所有的都在服务端这块,所以每次返回都是所有聊天记录。

    客户端请求 读取聊天记录的消息 

    客户端请求取得聊天记录    

    接下来 就介绍下客户端 我主要用到的jar包 volley   和 evbus  客户端的就比较简单了

    先上最核心代码  客户端与服务端互动  

    requestQueue = Volley.newRequestQueue(PeronActivity.this);

    发送成功后,可以开个计时器 一直响应好友的聊天记录,来读取好友发过来的消息 ,计时器跟随activity的摧毁而摧毁。

    对于有想法的小伙伴可以参考参考 最后赴上效果图

    相关文章

      网友评论

        本文标题:android studio 手写客户端 服务端 实现世界聊天

        本文链接:https://www.haomeiwen.com/subject/dbolbqtx.html