diff --git a/.github/ISSUE_TEMPLATE/----.md b/.github/ISSUE_TEMPLATE/----.md
new file mode 100644
index 0000000..e11187b
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/----.md
@@ -0,0 +1,22 @@
+---
+name: 功能请求
+about: 功能请求
+title: 功能请求
+labels: ''
+assignees: UncleCatMySelf
+
+---
+
+**建议这个项目的想法**
+
+**您的功能请求是否与问题有关?请描述一下。**
+简明扼要地描述了问题所在。防爆。[...]我总是感到沮丧
+
+**描述您想要的解决方案**
+清晰简洁地描述您想要发生的事情。
+
+**描述您考虑过**
+的替代方案对您考虑过的任何替代解决方案或功能的简明扼要描述。
+
+**其他上下文**
+在此处添加有关功能请求的任何其他上下文或屏幕截图。
diff --git a/.gitignore b/.gitignore
index 82eca33..421462b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,4 +22,8 @@
/nbbuild/
/dist/
/nbdist/
-/.nb-gradle/
\ No newline at end of file
+/.nb-gradle/
+
+### log ###
+
+*.log
\ No newline at end of file
diff --git a/Front-End-Testing/chat70.html b/Front-End-Testing/chat70.html
new file mode 100644
index 0000000..ea22f3d
--- /dev/null
+++ b/Front-End-Testing/chat70.html
@@ -0,0 +1,156 @@
+
+
+
+
+ WebSocket Chat
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Front-End-Testing/chat90.html b/Front-End-Testing/chat90.html
new file mode 100644
index 0000000..e039f7f
--- /dev/null
+++ b/Front-End-Testing/chat90.html
@@ -0,0 +1,156 @@
+
+
+
+
+ WebSocket Chat
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index dbafcba..4df66e4 100644
--- a/README.md
+++ b/README.md
@@ -1,55 +1,85 @@
-# InChat
-#### [Developer Chat](https://gitter.im/In-Chat/Lobby)
+
->The entire MAVEN toolkit is still under construction....
+
-## Summery
+[](https://jq.qq.com/?_wv=1027&k=57X4L74)
+[](https://github.com/UncleCatMySelf)
+[](doc/study/mulu.md)
+[](https://mvnrepository.com/artifact/com.github.UncleCatMySelf/InChat)
+
+
+
+
+## 简介
***(InChat)Iot Netty Chat***
-> 2018-11-15 began to change to MAVEN project package, currently not released, please see the demo branch for details, thank you.
+一个轻量级、高效、分布式的异步通信框架, 支持聊天和物联网, 您可以使用它来快速构建具有后台的聊天服务器, 并快速自定义自己的通信 api, 包括具有不同的通讯可以支持的协议。
+
+**欢迎参与QQ群交流与提供建议、业务场景、需求功能等**
+
+## Maven版本
-A lightweight, efficient communication framework that supports chat and the Internet of things, you can use it to quickly build a chat server with the background and quickly customize your own communication APIs, including physical networks with different protocols that can be supported.
+功能列表:
-## Branch demo:Stop updates
+> * 用户token登录校验
+> * 自我聊天
+> * 点对点聊天
+> * 群聊
+> * 获取在线用户数与用户标签列表
+> * 发送系统通知
-Original Project Core demo, you can first run to understand, imitation WeChat chat application, step by step update, based on Springboot-websocket General framework, combined with Netty to chat social, and record chat logs, asynchronous storage, front-end provisional sui Mobile, add implementation tcp/
-IP back-end communication port (MQTT protocol, real-time and single-chip computer and other TCP hardware communication), add picture processing stream, chat implementation text and picture sending function, API call Netty long link execution Send message (number of online, user list)
+* [V1.1.2版本使用说明](https://unclecatmyself.github.io/2019/01/03/inchatby112/)
+* [V1.1.2版本视频教学](https://v.qq.com/x/page/y08228i7znk.html)
-## Demo Effect Diagram
+```
+
+ com.github.UncleCatMySelf
+ InChat
+ 1.1.2
+
+```
-.png)
-.png)
-.png)
-.png)
-.png)
-
-
-
+## 项目日志
-## Branch im-api:Stop updates
+* [项目研发日志更新](doc/Project-Log-cn.md)
-Tencent im (cloud communications) backend imitation project, are docked in the form of APIs, if there is a front-end want to dock can run this branch, this branch is expected to end up for a single service concurrent 300,000 users of IM background project
+## 教程
-## Branch paho-mqtt:Stop updates
+### [Netty入门与源码讲解](doc/study/mulu.md)
+* [项目设计思路](doc/design_cn.md)
-Based on the small program end or mobile Web end of the Paho.js and Java MQTT Client simulation of message subscriptions and communications, small program IoT demo, currently supports WS format
+> * [登录模块详细设计](doc/detail/Login-cn.md)
+> * [登录模块整改版V0.1](doc/detail/login_rect.md)
-## Branch tcp-wechat:Stop updates
+## 里程碑
-Based on the main communication between the small program end and the single chip computer and other hardware TCP/IP, IoT Center as a relay, this demo will fully implement the specific functions, please see the Branch home page for details
+* [InChat项目里程碑](doc/goal/goal.md)
-## Download Address
+## 相关资料(欢迎贡献)
-Download Address:https://github.com/UncleCatMySelf/SBToNettyChat/releases
+* [QQ群建议贡献](doc/advice/advice.md)
-## Issues & Questions
+## 效果展示
+
+
+
+
+
+
+## 下载地址
+
+下载地址:https://github.com/UncleCatMySelf/SBToNettyChat/releases
+
+## 下载 & 问题
https://github.com/UncleCatMySelf/SBToNettyChat/issues
-QQ Group:628793702
+## 赞助
+
+打赏时请记得备注上你的github账号或者其他链接,谢谢支持!
-## About the author
+
+
-
diff --git a/doc/Project-Log-cn.md b/doc/Project-Log-cn.md
new file mode 100644
index 0000000..d018b94
--- /dev/null
+++ b/doc/Project-Log-cn.md
@@ -0,0 +1,31 @@
+# 项目研发日志更新
+
+* 【2018-11-21】 目前Maven包开发目标,设计WebSocket登录接口[详情请看设计文档](design_cn.md)
+* 【2018-11-22】 编码实现WebSocket聊天通讯的登录流程,[撰写说明文档](detail/Login-cn.md)
+* 【2018-11-23】 添加贡献建议信息,重构修改登录检测常量代码,提取成接口形式
+* 【2018-11-26】 登录存储用户token与链接实例,发送给自己功能API,部分功能代码重构
+* 【2018-11-27】 发送消息给在线其他用户,代码部分模块加注释,[撰写设计文档](detail/login_rect.md),但是中途思路有所转变
+* 【2018-11-29】 修复登录下线关闭channel异常BUG,移除原始未重构代码,更新下线模块,与本地在线存储功能。
+* 【2018-11-30】 启动赞助功能,新增【服务端向API发送消息】接口功能,暂未测试
+* 【2018-12-02】 转变部分项目思路,减少用户对框架的依赖与开发成本。
+* 【2018-12-03】 构建【组建群聊】模块功能,整改数据接收Map转为Map,放弃【组建群聊】,仅作基本im业务,完成功能【发送群聊】
+* 【2018-12-04】 明确项目文档的重要性,并设定Netty相关文档说明,与Netty入门说明
+* 【2018-12-05】 移除部分Iot使用的代码(一版暂时还没使用到),清楚pom文件中不用的jar包,需添加【系统时间】参数
+* 【2018-12-06】 确定LOGO并上传,InChat QQ群项目组成立,移除对lombok的依赖,使用传统形式,统一注释说明
+* 【2018-12-14】 打包完成v1.0.0Maven版本,并提交说明文档与相关资料,正对v1.0.0提交对应demo分支。
+* 【2018-12-15】 [录制V1.0.0使用说明视频](https://v.qq.com/x/page/i0813oy0lov.html)
+* 【2018-12-18】 明确移除对SpringBoot的依赖于环境,做成自纯应用。[添加NIO服务端与客户端Demo](https://github.com/UncleCatMySelf/InChat/wiki/Java-NIO%E4%B9%8BSelector%EF%BC%88%E9%80%89%E6%8B%A9%E5%99%A8%EF%BC%89)
+* 【2018-12-19】 移除lombok,嵌入log4j的依赖,并配置日志信息,移除对SpringBoot的依赖成功,普通main方法既可以运行项目。
+* 【2018-12-21】 添加静态配置,添加服务端发送接口,发布V1.1.0-alpha版本,标识性版本。
+* 【2018-12-27】 添加部分注释,修改版本启动模式,并预定后期添加HTTP接入模式,修改日志配置。
+* 【2018-12-28】 预计整改常量、修改部分方法(类)命名,下一版加wss通道。
+* 【2018-12-30】 修改异步线程任务(FutureTask启动模式),整改目录与修改核心类名,捕获未注册时客户端异常断开的连接异常,新增Http接口功能整改(未完)。
+* 【2018-12-31】 下一版InChat 自带几个默认的Http接口 查询【在线用户数】、【服务端发送消息】、【用户在线用户列表】等,暂不支持自定义URI HTTP接口
+* 【2018-01-01】 添加工具方法
+* 【2018-01-02】 修复httpPOST请求接口
+* 【2018-01-03】 完成新版http接口处理与测试,预计发包,新版发布 InChatV1.1.2,更新README展示GIF,录制V1.1.2视频教程与使用说明书
+* 【2018-01-04】 修复文档,确定版本,新增Redis对接
+* 【2018-01-05】 初步转分布式、处理netty集群(未完成)
+* 【2018-01-07】 完成netty集群,多用户跨服务器的消息通讯(HTTP版本)
+* 【2018-01-08】 设定下一版本目标
+
diff --git a/doc/advice/advice.md b/doc/advice/advice.md
new file mode 100644
index 0000000..76b35e9
--- /dev/null
+++ b/doc/advice/advice.md
@@ -0,0 +1,27 @@
+## QQ群贡献建议
+
+> 贡献者:小斑马
+
+* 一个netty在物联网的应用,质量很高,有些模块可以直接拿来用
+* https://github.com/cosmoplat-dev
+
+* 可以考虑把长连接单独做成一个模块,上行下行数据可以直接放到消息队列里面去,上行数据上来后直接放到消息队列里,其他模块接收存数据库,长连接模块监听其他模块放到消息队列里的下发数据
+
+> 贡献者:夜殇
+
+* 加了规则引擎的物联网项目
+* https://github.com/thingsboard/thingsboard
+
+* 对上方项目的修改
+* https://github.com/JaryZhen/rulegin
+
+> 贡献者:[ELLIOT](https://github.com/chanjjaeseo)
+
+* RabbitMQ 基本操作
+* https://github.com/chanjjaeseo/rabbitMQ-sample
+
+> 贡献者:[noseparte](https://github.com/noseparte)
+
+* [netty4通信原理](../netty-study.md)
+* MongoDB的基本操作
+* https://github.com/noseparte/mongoTeam
diff --git a/doc/design_cn.md b/doc/design_cn.md
new file mode 100644
index 0000000..1a9ef66
--- /dev/null
+++ b/doc/design_cn.md
@@ -0,0 +1,29 @@
+# 项目设计思路
+
+## 设计原则
+
+AOP、DI为主,基于Spring Boot快速搭建,尽量减少用户的二次搭配开发
+
+## 关于登录
+
+关于InChat统一登录的接口设计,设计针对小程序、APP、Web端的登录作用,所以将作为token的形式登录InChat的WebSocket长连接,用户服务器做sso的认证登录后得到token后直接发送login信息到InChat,用户服务器需要重写InChat中的verifyToken方法校验自己的的Token信息是否有效,正常则启动长连接。考虑到token失效问题,WebSocket长连接的登录仅做初次登录,接下来考虑以心跳形式保持链接状态(pingpong),使用token认证是为保护InChat链接的常规化(目前暂时这样设计后面根据使用情况更改设计)
+
+.png)
+
+* 【2018-11-22】 编码实现和[详细实现文档](detail/Login-cn.md)
+
+## 离线消息模板
+
+一版采用RabbitMQ----移除
+
+## 整体设计
+
+.png)
+
+1、移除原本Token概念,用户均以唯一标识登录并存储在线键值对于系统本地Cache。(登录存储、退出移除)
+2、DefaultWebSocketHandler,是框架默认的处理,数据均已json格式,拆分业务点
+3、由InChat内部的服务(WebSocketHandlerService )进行具体的业务实现并回写
+4、对于数据的存储与写入,默认是异步写入数据,用户可以重写InChatToDataBaseService,获取实时数据
+5、在高并发情况下,我们不推荐异步处理数据,可以通过配置化启动mq(目前支持RabbitMq),框架自动注入对应Bean,并由MQ来执行数据写入
+6、关于数据库连接池,我们不会绑定用户使用,而是支持用户自定义。
+
diff --git a/doc/detail/Login-cn.md b/doc/detail/Login-cn.md
new file mode 100644
index 0000000..2aa63e7
--- /dev/null
+++ b/doc/detail/Login-cn.md
@@ -0,0 +1,213 @@
+## 只给你最值得的信息
+
+小弟正在做的一个开源IM项目,目标是实现一个轻量级、高效率的支持聊天与物联网的通讯框架。昨天刚刚出的设计稿并再今天做了实现。
+
+项目是基于Netty的二次开发,关于Netty我这里就不再介绍了,懂的人自然都懂。我的预算是做一个所有企业或组织可以引用的Maven项目,并且是基本上开箱即用,简单实现对应的配置与重写方法就可以搭建自己的IM项目(某Q、某信的效果)。
+
+本文着重介绍的是登录接口的设计与实现。
+
+## 设计信息
+
+关于InChat统一登录的接口设计,设计针对小程序、APP、Web端的登录作用,所以将作为token的形式登录InChat的WebSocket长连接,用户服务器做sso的认证登录后得到token后直接发送login信息到InChat,用户服务器需要重写InChat中的verifyToken方法校验自己的的Token信息是否有效,正常则启动长连接。考虑到token失效问题,WebSocket长连接的登录仅做初次登录,接下来考虑以心跳形式保持链接状态(pingpong),使用token认证是为保护InChat链接的常规化(目前暂时这样设计后面根据使用情况更改设计)
+
+.png)
+
+由于目前大部分的Web项目或基于IM的项目登录可能存在多端的单点登录,所以我选用了Token的形式,为什么登录后还需要用token再来websocket这边校验一次呢?
+
+因为你登录的是web应用程序端的,而websocket而言,只要别人知道你的地址,那么就可以链接上,我们不希望存在过多的死链接(无效链接),所以我们需要将token再次发给InChat登录,由InChat来检验是否是合法登录链接,如果无效则关闭链接。
+
+## 代码实现
+
+由于是想要做给别人用的,那么我们自己本身就要封装的好一点,对于配置我选了足够多的类型。
+
+
+
+对于netty监听与初始化,我使用的方式是扫描与AspectJ,你可以在项目的auto包中看到扫描启动,这种启动思路我也是参考了其他的开源项目(具体忘记了地址)。
+
+```java
+@Bean
+@ConditionalOnMissingBean(name = "sacnScheduled")
+public ScanRunnable initRunable(@Autowired InitNetty serverBean){
+ long time =(serverBean==null || serverBean.getPeriod()<5)?10:serverBean.getPeriod();
+ ScanRunnable sacnScheduled = new SacnScheduled(time);
+ Thread scanRunnable = new Thread(sacnScheduled);
+ scanRunnable.setDaemon(true);
+ scanRunnable.start();
+ return sacnScheduled;
+}
+
+
+@Bean(initMethod = "open", destroyMethod = "close")
+@ConditionalOnMissingBean
+public InitServer initServer(InitNetty serverBean){
+ if(!ObjectUtils.allNotNull(serverBean.getWebport(),serverBean.getServerName())){
+ throw new NullPointerException("not set port");
+ }
+ if(serverBean.getBacklog()<1){
+ serverBean.setBacklog(_BLACKLOG);
+ }
+ if(serverBean.getBossThread()<1){
+ serverBean.setBossThread(CPU);
+ }
+ if(serverBean.getInitalDelay()<0){
+ serverBean.setInitalDelay(SEDU_DAY);
+ }
+ if(serverBean.getPeriod()<1){
+ serverBean.setPeriod(SEDU_DAY);
+ }
+ if(serverBean.getHeart()<1){
+ serverBean.setHeart(TIMEOUT);
+ }
+ if(serverBean.getRevbuf()<1){
+ serverBean.setRevbuf(BUF_SIZE);
+ }
+ if(serverBean.getWorkerThread()<1){
+ serverBean.setWorkerThread(CPU*2);
+ }
+ return new InitServer(serverBean);
+}
+```
+
+
+在上图中存在一个DefaultWebSocketHandler,这个是默认的netty启动处理。
+
+当然在执行它之前,还需要执行到一个抽象的类WebSocketHandler。
+
+它将会为我做一些基本的功能操作。
+
+```java
+@Slf4j
+public abstract class WebSocketHandler extends SimpleChannelInboundHandler