Android简易聊天室软件(HTTP实现)

索引

  • 1.开发契机
  • 2.软件概述
  • 3.服务器端
  • 4.客户端
    • 4.1 登录界面:MainActivity
    • 4.2 聊天界面:ChatRoom
  • 5.特点

1.开发契机

很早之前就想自己做出一个仅实现远程聊天功能,而不带有任何冗余功能的超级轻量化聊天软件。参考了众多开源的聊天软件源代码,发现大部分是使用socket实现了私有网络的通信。当时也是苦恼了一段时间,最终使用了JSON格式对聊天记录进行存储,并通过HTTP协议对JSON数据进行传输,从而实现了这个轻量化的聊天软件。

2.软件概述

该聊天软件不涉及数据库,所有聊天记录以JSON的形式存储于服务器的内存中。用户通过在登录界面登录以后便进入了一个公共的聊天室,可以通过公共网络与任何一个同样使用这个应用的用户进行聊天。以下分别是登录界面和聊天界面。

Android简易聊天室软件(HTTP实现) Android简易聊天室软件(HTTP实现)
使用的开发工具及环境:
①Eclipse Java EE IDE for Web Developers. Version: Mars.1 Release (4.5.1)
②Android Studio 3.5.3

3.服务器端

我在本机搭建了Tomcat服务器作为Web应用的容器,使用Servlet来实现聊天的业务逻辑。
由于使用到了JSON数据,所以需要在相应的Web应用项目中的 WEB-INFlib 文件夹下导入6个jar包定义了一个DiffServlet

在web.xml对该Servlet进行注册

4.客户端

Android客户端包含两个Activity,一个是登录界面MainActivity,一个是聊天界面ChatRoom。所有的活动要在AndroidManifest.xml文件中进行注册,为了使用户在应用中使用输入法使界面的背景图不会被压缩,所以在每个活动标签中加入

这样一条代码,就可以解决背景图片被压缩的问题了。
由于项目中要使用网络,所以要在AndroidManifest.xml文件中对授权对网络的访问,添加如下代码:

注意
如果我们使用的是http协议的域名,使用Android Studio开发的应用可能会与主机连接不上,出现这种情况可参考6号楼下的大懒喵的博客 OkHttp请求http链接失败的问题

4.1 登录界面:MainActivity

布局文件:

源代码:

package com.example.chatroom;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private Button btn_cnt;    private EditText et_name;    @Override    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn_cnt = (Button) findViewById(R.id.btn_cnt);et_name = findViewById(R.id.et_name);btn_cnt.setOnClickListener(MainActivity.this);    }    public void onClick(View view) 来源:孙家坑坑坑坑坑坑
                                                        

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年5月22日
下一篇 2020年5月22日

相关推荐