1 Star 0 Fork 83

steven/smart-socket

forked from 三刀/smart-socket 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

#Smart-Socket

##框架结构

  • 传输层
    smart-quickly:NIO的具体实现,并提供协议解析接口
  • 协议层
    1. smart-protocol-http:暂时未完善Http解析,可忽略
    2. smart-protocol-p2p:以二进制流进行点对点通信的协议,

##快速启动 服务端: P2PServer.java 客户端: P2PClient.java

##Smart-Socket简介 采用NIO实现的通信框架,目前再次基础上提供了P2P协议的交互支持。

特点:

  1. 长连接:由于Socket连接的建立和关闭很耗性能,Smart-Socket的定位为采用了长连接通信;
  2. 自修复:采用长连接方式的一个弊端为可能出现网络断连,因此对于客户端,提供了链路断连自动修复支持;
  3. 服务端支持集群:各服务端节点都可提供业务服务的同时,充当路由网关进行消息分发。也可通过实现接口ClusterTriggerStrategy自定义消息分发策略;
  4. 自定义负载均衡:服务端开启集群功能后,Smart-Socket目前默认提供了轮循算法RoundRobinLoad用于实现负载均衡,也可通过继承AbstractLoadBalancing自定义负载均衡算法;
  5. 自定义消息过滤器:通过实现接口SmartFilter,可以对通信的消息进行自定义监控或预处理;

##P2P协议简介 P2P协议采用TCP协议承载,二进制编码格式,其消息结构分为P2P协议头部和业务消息体两部分。

  1. P2P消息头定义为定长字段,字段定义固定总长度为(32个字节)。包括:
    • MAGIC_NUMBER:幻数(4字节)
    • Length:消息总长度(4个字节)
    • MessageType:消息类型(4个字节)
    • SequenceID:由发送方填写,请求和响应消息必须保持一致(4个字节)
    • 预留16字节
  2. P2P消息体定义:
    用于存储特定业务数据的区域,支持的数据类型包括boolean、short、int、String、Object(序列化对象,不建议频繁使用)

##关于作者 Edit By Seer
E-mail:zhengjunweimail@163.com
QQ:501190241

Update Date: 2015-08-24

空文件

简介

基于NIO实现的一个通信框架 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/china/smart-socket.git
git@gitee.com:china/smart-socket.git
china
smart-socket
smart-socket
master

搜索帮助