webChat
基于layim 3.x的web聊天系统,采用Java技术 WebSocket+mysql,利用spring mvc框架+MyBatis实现
注意:由于layim非开源,故本项目中移除该部分功能,无法导入直接运行。需要将layui文件夹拷贝到/webapp/js/目录下
IP地址修改:Global.java URL index.jsp jdbc.properties
在线示例
用户yan:点击登录
用户张三:点击登录
用户李四:点击登录
测试步骤:同时点击多个链接,登陆多个账户进行相互消息测试。若提示“未登录”刷新界面两次即可!
功能
私聊、群聊
离线消息
实时上线、下线状态更新
好友查找添加
消息盒子
更新
2017.1.29
完成 查找好友、消息盒子的前端模板
完成 查找、添加好友和消息盒子的api设计
完成好友查找添加、消息盒子的逻辑和功能
2017.1.28
完成群离线消息的处理
完成Restful的member接口(获取群成员信息)
完成Restful的init接口(获取群信息)
2017.1.26
离线消息功能完成
实时上线、下线状态更新
2017.1.24
完成WebSocket私聊功能
完成Restful的init接口(获取个人信息、好友列表)
2017.1.22
基本框架搭设
结构图
com.ices.yangengzhe.service.api
Information
init - 初始化方法 返回用户信息和好友列表
addUser - 添加用户
findUserByUid - 根据UID找用户
Friend
// 创建好友分组
int addFriendgroup(Integer uid, String groupname);
// 创建好友分组
int addFriendgroup(Integer uid, String groupname, List members);
// 添加好友
void addFriend(Integer user1,Integer user1_group,Integer user2,Integer user2_group);
//向分组加成员
void addMemberToFG(Integer groupId,Integer uid);
// 获取分组列表
public List getFriendgroupList(Integer uid);
// 获取分组列表(含成员)
public List> getFriendgroupDetaillist(Integer uid);
// 获取好友分组的成员
public List> getFridengroupMember(Integer fid);
com.ices.yangengzhe.socket
webServer.javawebSocket服务器,用于与客户端消息的交互
manager利用缓存管理会员列表
GroupUserManager.java组成员管理
UserManager.java会员session管理
OnLineUserManager.java在线会员管理
sender 消息发送
MessageParse.java消息生成工具类
MessageSender.java消息发送类
设计模式
工厂模式、单列模式、代理模式、过滤器模式
注意
本项目中缺少两部分:com.ices.yangengzhe.util.security.Security类和SQL文件
Security:用于用户的权限验证,包含:getPassword、authentication和isLogin方法。
SQL文件:mysql数据库,包含:结构+测试数据+存储过程
以上部分由于其他原因暂不公开,但是不影响整体的功能逻辑,对于学习者不会有任何影响。
本项目只是供学习使用,相信根据代码也有能力完善以上两部分,故不再讨论或索取以上两部分相关内容。
帮助支持
可在该项目的Issues中讨论 或 加入QQ群:194895016
喜欢的请点击star or fork