java实现聊天室的简单实现
1、首先第一步就是数据库建表。
总体来看有以下几张基础的表:
(1)用户表:
(2)好友表:
(3)群表:
(4)群用户表:
(5)好友消息表
(6)群消息表:
以上就是一些基本的表吧,其中其实是有些重复了的,比如:好友消息表中的one_self,以及群消息表中的name_group。这都是重复的,可以省略的。你可以通过里面的好友id和群id来继续查表,找到好友名和群名,我当时只是为了方便,不建议使用,谨记,谨记......
2、实现得一下功能步骤:
(1)注册:
首先你的有一个界面,然后在里面输入信息点击注册按钮后,就将里面得数据存入数据库,并跳转到登录界面(注意:其中得用户id是自动生成的,并且不能够有重复的,也就是说,你需要实现去重操作)。
(2)登录:
在登录界面用户输入完账号密码后,你就通过你输入的账号去数据库中查找你的密码,如果有,找出来的时候你就与用户输入的密码进行字符串比较,如果不相同的话,就返回一个信息给用户,表示登录失败,否则,就直接进去主界面。
(3)添加好友:
在搜索框中输入想加的好友id后,就进入数据库查找,如果存在此用户,就发送一个信息给该好友,然后好友收到后,看是否接受。如果接受,就在数据库中建立好友关系。
(4)删除好友:
直接在数据库中删除两个人的好友关系,并且删除相关的聊天消息。
(5)创建群聊:
直接在数据库中创建群聊关系,记住,其中是创建该群聊的用户为群主。
(7)加入群聊:
和添加好友差不多,不同的是,管理员和群主都会收到添加消息,如果只要其中一个人同意,其他的人就无法继续同意了。
(8)发送消息:
现在才是比较难的地方,这里需要使用服务器来进行一个中心处理(当然,这个服务器其实就是指你自己,添加好友和加入群聊也需要用它来做一个中间转接),首先一个用户发送一条消息给它的好友,你需要对消息做一些包装(其中包装的格式由你自己规定,我当初约定的格式:@id_me~id_you&name_me#text:time,其中id_me表示我的id,id_you表示好友的id,name_me表示我的昵称,text表示发送的消息,time表示发送消息的时间),然后将消息传送到服务器后,你就需要对包装好的信息进行解析,然后获取你其中需要的信息,然后将信息更新到数据库,最后同步好友的消息列表。其中需要使用到多线程,一个用户代表一条线程。