All Projects → anlingyi → Xechat

anlingyi / Xechat

Licence: mit
基于SpringBoot+STOMP协议实现的web聊天室

Programming Languages

javascript
184084 projects - #8 most used programming language
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Xechat

Justpay
spring-boot2.0.0+Dubbox+spring-webflux的轻量级分布式聚合支付
Stars: ✭ 99 (-13.91%)
Mutual labels:  springboot
Superman
Superman是什么:构建Java 高级开发技术的知识体系,从基础不断打怪升级成为超人之路(更新中.......)
Stars: ✭ 106 (-7.83%)
Mutual labels:  springboot
Spring Cloud Flycloud
🔥🔥🔥FlyClould 微服务实战项目框架,在该框架中,包括了用 Spring Cloud 构建微服务的一系列基本组件和框架,对于后台服务框架的搭建有很大的参考价值,大家可以参考甚至稍加修改可以直接应用于自己的实际的项目开发中,该项目没有采用Maven进行项目构建,Maven通过xml进行依赖管理,导致整个配置文件太过臃肿,另外灵活性也不是很强,所以我采用Gradle进行项目构建和依赖管理,在FlyTour项目中我们见证了Gradle的强大,通过简单的一些配置就可以轻松的实现组件化的功能。该项目共有11个Module工程。其中10个位微服务工程,这10个微服务工程构成了一个完整的微服务系统,微服务系统包含了8个基础服务,提供了一整套微服务治理功能,他们分别是配置中心module_c…
Stars: ✭ 1,514 (+1216.52%)
Mutual labels:  springboot
Springboot Templates
springboot和dubbo、netty的集成,redis mongodb的nosql模板, kafka rocketmq rabbit的MQ模板, solr solrcloud elasticsearch查询引擎
Stars: ✭ 100 (-13.04%)
Mutual labels:  springboot
Parsevip
解析VIP资源,解析出酷狗、QQ音乐、腾讯视频、人人视频的真实地址
Stars: ✭ 105 (-8.7%)
Mutual labels:  springboot
Ruoyi Vue Fast
(RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统
Stars: ✭ 107 (-6.96%)
Mutual labels:  springboot
Stomp Php
Stomp PHP Client
Stars: ✭ 94 (-18.26%)
Mutual labels:  stomp
Spring Boot Shiro
Shiro基于SpringBoot +JWT搭建简单的restful服务
Stars: ✭ 1,563 (+1259.13%)
Mutual labels:  springboot
Spring Summary
토비의 스프링 3.1 서적과 백기선님의 강좌를 토대로 스프링의 핵심 기술을 정리했습니다.
Stars: ✭ 106 (-7.83%)
Mutual labels:  springboot
Esaymarket
拖拽生成落地页,app,小程序实现测试开发运维部署客服一体化
Stars: ✭ 113 (-1.74%)
Mutual labels:  springboot
Admin
这个一个基本的后台框架,springboot + redis.
Stars: ✭ 100 (-13.04%)
Mutual labels:  springboot
Momo Cloud Permission
基于SpringBoot2.x、SpringCloud和SpringCloudAlibaba并采用前后端分离的企业级微服务多租户、多系统的系统架构。适合学习和企业中使用。真正实现了手撸RBAC、jwt的无状态统一权限认证的解决方案,面向互联网设计同时适合B端和C端用户,支持CI/CD多环境部署;同时还集合各种微服务治理功能和监控功能。模块包括:企业级的认证系统、开发平台、应用监控、慢sql监控、统一日志、单点登录、Redis分布式高速缓存、接口文档、蚂蚁金服代码生成器等等!netty心跳服务器支持鉴权、断线重连、其他业务模块开发
Stars: ✭ 101 (-12.17%)
Mutual labels:  springboot
Myth
Reliable messages resolve distributed transactions
Stars: ✭ 1,470 (+1178.26%)
Mutual labels:  springboot
Stompclientlib
Simple STOMP Client library, Swift 3 and 4, 4.2, 5 compatible
Stars: ✭ 99 (-13.91%)
Mutual labels:  stomp
Community
开源论坛、问答系统,现有功能提问、回复、通知、最新、最热、消除零回复功能。功能持续更新中…… 技术栈 Spring、Spring Boot、MyBatis、MySQL/H2、Bootstrap
Stars: ✭ 1,947 (+1593.04%)
Mutual labels:  springboot
Caption ocr tool
视频硬字幕提取工具
Stars: ✭ 98 (-14.78%)
Mutual labels:  springboot
Mall
mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
Stars: ✭ 54,797 (+47549.57%)
Mutual labels:  springboot
Qrcodelogin
【二维码登录】基于SpringBoot+Vue+Android的二维码扫码登录;服务器端、网页前端和安卓端源码;
Stars: ✭ 115 (+0%)
Mutual labels:  springboot
Chat Room
使用GO+Vue构建的聊天室网站
Stars: ✭ 113 (-1.74%)
Mutual labels:  chatroom
Syntaxmeets
Syntaxmeets. Create rooms 🏠 Call your friends 👬🏼 Sip Chai, ☕ Chat, Create, and Code👨‍💻. A coding platform to code simultaneously 🚀 with your friends and design your algorithms on SyntaxPad.💫✨
Stars: ✭ 110 (-4.35%)
Mutual labels:  chatroom

xechat

基于SpringBoot+STOMP协议实现的web聊天室

环境

  • JDK1.8
  • Maven
  • IDEA
  • Lombok Plugin

部署

Linux & Windows

部署前需先安装配置好 JDK8Maven3 等环境。

创建目录并授权

Linux 系统一般需执行此步骤。
Windows 系统默认创建的目录在项目所处的盘符根目录中,需修改 application.properties 里的目录映射配置 file.directoryMapping=所在盘符:\\xechat\\

# 存放日志的目录
sudo mkdir /var/log/xechat
# 资源映射的目录
sudo mkdir /xechat
# 授权
sudo chmod 777 /var/log/xechat
sudo chmod 777 /xechat

修改应用地址

此配置会影响到聊天图片和聊天记录等文件的访问,本地部署默认即可,线上服务器部署请修改为服务器公网IP或访问域名。

application.properties 配置文件里将 app.url 的值修改即可

#项目地址
app.url=http://localhost:${server.port}

修改百度地图API

不改也行。。。

项目中的定位功能使用的是百度地图的API

需将 ak 的值替换成自己的

编译运行

finalName: maven打包的文件名,在pom.xml文件中由<build>标签内的<finalName>指定

env: 项目运行环境,测试环境test 生产环境prod

mvn clean install -Dmaven.test.skip=true
java -jar ${finalName}.jar --spring.profiles.active=${env}

功能

https://xeblog.cn/articles/13

登入

登入成功后会将用户信息缓存到cookie中

登入界面

选择头像输入昵称后点击登入按钮

系统广播上线消息

发送消息

发送文本消息

发送图片消息

再次登入两个用户

左侧按钮为显示在线用户列表,右侧按钮为退出聊天室

@好友可进行私聊

小毅这个用户收不到胖虎和小丸子的私聊信息

敏感词检测

使用DFA算法检测文本是否包含敏感词(DFA:Deterministic Finite Automaton 确定性有限自动机)

敏感词列表

敏感词的配置是在 resources 目录下的 sensitive-word.txt 文件中,敏感词一行一个

发送一个包含敏感词的文本信息(此处输入的敏感词为嘻嘻和哈哈)

成功被系统河蟹😏 河蟹后的处理是随机返回一个社会主义核心价值观。

富强、民主、文明、和谐、自由、平等、公正、法治、爱国、敬业、诚信、友善

过滤日志

注销

点击右侧按钮退出聊天室,系统广播离线消息,在线用户列表和在线人数自动更新

点击注销按钮可清除当前的登入信息,不注销则可继续以当前的信息登入

不注销直接登入

消息撤消

双击自己发送的消息弹出撤消提示,确定后即可撤消这条消息(只可撤消3分钟内的消息)

消息已经撤消,系统广播撤消消息

聊天记录

聊天记录访问地址 http://ip:端口/record.html

进入聊天记录页面需要输入访问密码 默认的访问密码为 xechat

密码加密方式

先将密码经过 BASE64 加密后再进行 MD5 的32位小写加密

加密流程

密码 xechat 经过 BASE64 加密后变为 eGVjaGF0 ,再进行 MD5 32位小写加密后变为 c85715fec7827f3b388af185b8e7db77

修改密码

application.properties 配置文件里将 chatrecord.password 的值替换即可

#聊天记录页面访问密码(密码先经过base64加密后再进行32位md5加密)
chatrecord.password=c85715fec7827f3b388af185b8e7db77

输入密码点击确定

密码输入正确后显示聊天记录文件列表,按照 yyyyMMdd 的方式每天自动生成一个 .md 格式的文件

点击列表中的文件可以查看当天的聊天记录

v1.2更新

接入图灵机器人

https://xeblog.cn/articles/14

图灵机器人官网 http://www.turingapi.com
API文档 https://www.kancloud.cn/turing/www-tuling123-com/718227

xechat_v1.2.png

配置机器人

修改图灵ApiKey

turing_apikey.png

application.properties 配置文件里修改 turing.apiKey 的值

#图灵apikey
turing.apiKey=xxx

修改机器人信息

修改 cn.xeblog.xechat.constant.RobotConstant 类中对应常量

package cn.xeblog.xechat.constant;

/**
 * 机器人相关常量
 *
 * @author yanpanyi
 * @date 2019/4/10
 */
public interface RobotConstant {
    /**
     * 存储的key
     */
    String key = "robot";
    /**
     * 触发机器人聊天的消息前缀
     */
    String prefix = "#";
    /**
     * 机器人名称
     */
    String name = "小小毅";
    /**
     * 机器人头像
     */
    String avatar = "./images/avatar/robot.jpeg";
    /**
     * 机器人地理位置
     */
    String address = "火星";
}

修改机器人欢迎信息

修改 cn.xeblog.xechat.constant.MessageConstant 类中对应常量

package cn.xeblog.xechat.constant;

/**
 * 消息模板
 *
 * @author anlingyi
 * @date 2019/5/7
 */
public interface MessageConstant {
    /**
     * 进入聊天室广播消息
     */
    String ONLINE_MESSAGE = "%s进入了聊天室";
    /**
     * 离开聊天室广播消息
     */
    String OFFLINE_MESSAGE = "%s离开了聊天室";
    /**
     * 机器人欢迎消息
     */
    String ROBOT_WELCOME_MESSAGE = "@%s 欢迎来到聊天室!消息内容以'#'开头的我就能收到哦(PS:双击我的头像与我聊天)," +
            "随时来撩我呀!";
}

实际效果

xechat_v1.2_1.png

xechat_v1.2_2.png

xechat_v1.2_3.png

xechat_v1.2_4.png

xechat_v1.2_5.png

靓仔语塞.gif

新消息通知

https://xeblog.cn/articles/22

通过勾选新消息通知、消息提示音等设置项开启相应功能。

xechat_v1.2_6.png

通知效果

xechat_v1.2_7.png

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].